I hijacked the ticket at http://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/1626-fieldwitherrors-shouldnt-use-a-div#ticket-1626-9 . The initial patch changed the element added to error input tags from a div to a span. However, I agree with the general theme of comments on the ticket that having the view change the structure of the HTML in the presence of errors is a consistent pain in the backside.
So, I submitted a different patch that changes the behavior to add the 'fieldWithErrors' class directly onto the error input element, rather than on a wrapping div. This patch keeps the #field_error_proc class accessor on ActionView::Base, but sets it to nil by default. It also adds a #field_error_options class accessor which defaults to { :class => 'fieldWithErrors' }. These options merge (carefully) with the normal HTML options for the tag in question.