If you use jQuery, or a similar toolkit, you don't need to worry about every element having a class or an id attribute. With CSS selectors that jQuery provides, you can target any element on the page. See the jQuery Docs for more information.
In short, you don't need to make the Stack Exchange development team drop everything they're doing to go update the HTML with a few classes and id's. :)
Keep in mind that browser add-ons and Greasemonkey scripts are at their very core hacks. They're not officially supported, and forcing the Stack Exchange team to worry about whether they're going to break your script if they make an update to the HTML is not something that is in their best interests or the best interests of Stack Exchange. Part of what makes Stack Exchange successful is the razor-sharp focus on developing only what's necessary, and carefully picking and choosing what will and will not be supported.
If it helps, I know how you feel! I'm working on a Greasemonkey script right now that involves parsing the DOM. We need to be prepared to support our scripts when they break. I'll go out on a limb here and say that supporting our scripts is out of scope for the Stack Exchange developers; their focus is on the core engine.
As an aside, I think a good feature request could possibly be a frontend SDK for browser add-ons and scripts. This would give the team more control over what they "officially" support and what they won't support because it would take too much work. It would also add a layer of abstraction between our scripts/add-ons and the actual SE frontend HTML.