onBeforeSaveUser event does not fire if basic user fields do not validate
I agree it's unexpected behavior, but for Craft 2 it won't change.

Craft 3 had a major overhaul of its event system and validation workflow where it works as you'd expect, though.