Calling is_quosure() forces the quosure to evaluate, so that approach does not work.
Using UQ() or !! works perfectly, albeit only if you use it directly inside the function arguments. So for example you could not do .x <- UQ(enquo(.x)) at the top of the example function. Still it looks like that's the best way to achieve this. Thanks Stuart!