Likewise, torque is only in the same units because we don't regard radians as a unit, but we should. They are distinctly different.
> There's no distinction in flat space but if you e.g. changed units such that energy was on the surface of a sphere, then work is a spherical displacement instead, which is a totally different class of objects.
Well, maybe. But in other circumstances you want to treat eg heat and work interchangeably. Just look at https://en.wikipedia.org/wiki/Work_(thermodynamics) and https://en.wikipedia.org/wiki/Work_(physics) and https://en.wikipedia.org/wiki/Work_(electric_field)
Basically, how much you _want_ to encode in your type system depends on the needs of your application. (Approximately all type systems can be made to work for all applications. But they differ in the degree of convenience and error proneness.)