I agree quaternions are a good parameterization of SO(3). But they can still cause unexpected problems, e.g. any machine learning task involving quaternions will be made harder because the learned function must deal with the double covering.
Of course, the same problem exists for angles in SO(2), and from what I've seen people usually deal with that by using the [sin, cos] pair instead.
Of course, the same problem exists for angles in SO(2), and from what I've seen people usually deal with that by using the [sin, cos] pair instead.