more efficient vector rotation without explicitly assigning quaternions

In Quaternion3f::transform(Vec3f &v):

Besides that the function is more efficient now (see http://gamedev.stackexchange.com/questions/28395/rotating-vector3-by-a-quaternion for a comparison),

in the future, i would like to remove the possibility of assigning non-normalized quaternions, since they are not used in this context anyway, and i am running into rounding errors when running long enough (i.e. quaternions become unnormalized after time and crash my program). 

For example we could use the assert from the function "toRotation" in the constructor to forbid unnormalized versions. Or is there some module using unnormalized quaternions?