Until html5 it wasn't forgiving - it was ambiguous. Different browsers could (and did) interpret different malformed html in different ways.
Once there was a standardized interpretation for malformed html, there was a chance that we could have treated that as a transparent conversion layer to xhtml. That isn't how WHATWG went, however.