Quaternions are dead easy (as far as math beyond Reals is concerned). People just insist on making them hard.

Essentially quaternions are 4d complex numbers

No...they are exactly complex numbers in 3 dimensions. The require 4 elements because a bivector (plane element) is one element in 2D and three in 3D. So in math speak they are a 4d vector space which is just saying they require 4 elements.

....with funky ways of multiplying them, adding them etc. - and it just so happens that they can represent 3d rotations much like a 3d matrix but these have only 4 numbers and are computationally simpler to work with.

They only add one new rule...for multiplication.

a) you have to generate a rotation matrix to actually use them

No they can be used directly. In fact the so-called quaternion to matrix conversion is simply applying the direct formula three times, one for each: (1,0,0),(0,1,0)&(0,0,1) and shoving the result into a matrix.

b) you have to keep them normalised the whole time.

Not really required but it is desirable. Pretty much all code bases will make some simplifying assumptions of unit magnitude and moreover the "structure" of the quaternion product make compounding of errors (in the scale) grow very lowly.

c) unless you have a PhD in Mathematics or are simply extremely gifted in mathematics they make absolutely no sense. One of those things that simply works. Fine until it doesn't.

This shouldn't be the case. One could argue that they are easier than vectors and are certainly easier than linear algebra (for basic operations).

@gouessej:

I have no clue about what you mean by "Eulerian transforms", (it can't be anything invented by Euler) but the equivalent of gimbal lock is impossible with quaternions...the structure of the product doesn't allow it.