It's obvious that some form POST requests should result in a 4xx HTTP error (e.g. wrong URL, lacking an expected field, failing to send an auth cookie), but existing questions like this seem to suggest that all invalid form submissions should be considered 4xx HTTP errors. Really?
Mistyping passwords or accidentally omitting required fields are extremely common and expected occurrences in an application. It doesn't seem clear from any spec that these should constitute an "HTTP client error", or that a POST can only be considered 2xx successful if it yields a permanent state change.
I guess my intuition is that, if a server sends a client a form, and the client promptly replies with a correctly-formed POST request to that form with all expected fields, a common business logic violation shouldn't be an HTTP error.
The situation is even less defined if a form is submitted over something like JSON-RPC. HTTP is just the transport mechanism and if the function is successfully called and the response returned to the caller, there should be no HTTP error.
More rarely, some forms may do multiple things and one part may succeed while the other fails.
Ideally the IETF would clear this up with an RFC, maybe adding an HTTP error code for "the operation was not performed due to a form invalidation failure" or expanding the definition of 422 to cover this.