I wouldn't say always, and although most of the time the Post-Redirect-Get approach results in implicitly better behaviour, I would rather take your approach and say where it is warranted. I think it's much more important to keep an open mind and think about each situation on its own merits.
I would, however, despite the slight added complexity of having a session persisted message queue, do this even for the sign up form. Even though validation prevents a repeat submission and the "account already exists" message seems appropriate technically it may not make sense to a user. I only redirect if the POST was successful, on failure simply view the form otherwise this would definitely cause an unreasonable level of complexity, persisting all of the validation messages and input.
Now I'm sure there are caveats to this, I'm just going by my experiences.