While many other elements both considered valid or invalid frames can be abused. Unfortunately frames and the iframe element were written off before the necessary means to work around related issues were not only implemented though gained an overwhelming establishment in the browser market share to make the newer alternative solutions a reliable and viable means to work with. So in other words iframes are in some rare cases still completely necessary as in example I can not work with (in even an ideal situation of) 18.04% of the browser market share with support for XMLHttpRequest 2 with support for AJAX file uploads.
Every solution I've encountered uses JavaScript to use the non-standard innerHTML method to plop an iframe on to the page in example.
So the standards bodies removed the ability to validate the only viable means to implement certain features while the browser vendors (especially Microsoft) have not implemented the newer solutions we need quick enough to be able to rely on an overwhelming browser market share to consider the newer means a viable solution.
What ultimately matters is getting what clients need which means in this situation fixing the doctype to undo the premature deprecation of iframes is what ultimately matters. To remain relevant to current web standards I personally use XHTML 1.1 which I can
extend support for (X)HTML 5 features as well as prematurely deprecated features of earlier versions of HTML as HTML5 makes it outright impossible to viably achieve the necessary solutions for clients while also attempting to validate with it's versionless doctype.
So in other words custom doctypes are the
only viable means if you've already reviewed all of your options and you still wish to have your cake and eat it to or in this case have the required features without breaking validation. I have a
thread here hoping someone will answer my last question about amending whatever existing element in the doctype which is the only remaining issue. It's an ugly solution though the situation wasn't pretty to begin with.