Why is rotation handled like this?

So I set a small angular velocity for my mesh and spawned it in air, and then I printed the rotation values at every tick.

To my surprise, it goes something like this(I watched the Pitch):

 90
  |
  |

0-------0
|
|
-90

Why is it implemented like this?! Now its extra work to see if an object rotated, say, 140 degrees.