First of all, thanks very much for the code - this essentially solves my problem (I don't like that it doesn't yell at me if I try to "drop" units that shouldn't be dropped, but the original function doesn't do that either so I'll just have to add that functionality). It's both obvious in retrospect (which is good, since it is easy to explain to students!) but also very clever, so thank you for that!
In case there are any non-mathematica experts who are as confused by how it could work as I was, I think you must have changed your notation part way through (or I am still confused). To make it work I had to rewrite it as:
qmr[q_, unit_] := QuantityMagnitude[q/Quantity[1, unit]]
Is there a better/more standard way of doing this with your args__ argument?
As for the reference, thank you. I had read a longer (earlier) paper by the same authors (the one I referenced) where it seems that they were making a slightly different case - that radians are the natural (coherent) unit that should be treated as dimensionless (and that Hz should be treated as cycles/second and not 1/s). But I was wrong in my belief that this opinion was anywhere near unanimous - I'm sorry about that.
So thanks again,
Eric