The Generic and Non-Generic Cases tutorial in the Wolfram Language documentation center explains the motivation for this behavior.