In response to the amount of complaints about the necessary evil that is rate limiting, consider putting a timeout to rate limiting messages (when the timeout expires, the message would fade away).
The message should disappear by itself after the action becomes available again (you can still click to dismiss, however); the message, however, should remain displayed for enough time to be read (e.g., we can't have the vote count fetching message flash for a mere second).
A reasonable time out length would be, for some value of reading_time
:
timeout = max(action_delay, reading_time)
A reasonable value of reading_time
could be 10 seconds.
Messages could also be changed to expose this feature:
Only 1 comment allowed per 15 seconds; timer reset.
(wait 15 seconds or click to dismiss)