Displaying a record is not the same as building a form, and for the life of me I can't see why ad_form would be the desired mechanism for doing this.
I think the templating approach taken by the CR is much better for displaying records ... and the CMS/CR + templating engine can already build default display templates from attribute data. Continously overloading ad_form as has been done over the past few months won't make its use easier to understand, quite the opposite.
We need to 1) simplify the use (something Dave, Jun and I are discussing and plan to work on together in the next few weeks) and extend this functionality to plain old objects.
Your approach to documenting it would confuse me, and I wrote it! :) Iterating a matrix of states into a one long string of single-dimensional states is just confusing.
I'd like to see the example you wrote that crashed when a field didn't validate. That sounds like a sloppy implementation of some option ... AFAIK that behavior was not possible in ad_form before folks started piling on more and more special featurettes.
I'm also curious as to which features you'd leave out in an "ad_form2" ...