The primary use of these rules, in my experience, is to prevent the common usage from changing. You certainly don't do a good job teaching language by asking people to memorize formal rules. You also aren't going to make a computer understand natural language by writing down formal rules.
So why do it? To make observations? Observations don't need formalization; just provide good statistics.
Saying the rules shouldn't exist is like saying Newton's laws shouldn't exist -- they are just patterns that someone has noticed.
While there seem to be exceptions to most rules proposed (because natural usage is complex), the rules are still fairly accurate for most cases.