The problem with application specific rules is that a cracker could choose to not adhere to them so the problem is still there and the application have to be prepared for everything that the protocol can transport.
Note that everything the protocol can transport might be a superset of what the protocol allows.