As someone who has to train people to use software, I think you are spot-on with what you're saying here. Too many software packages (even ones that started out well) throw these principles out as their program gets more complex.
That's I think one of the worst things about the most recent MS offerings where they've done daft things like have icons look like buttons yet they need to be double clicked on. Crazy stuff to try and teach someone, because it lacks visual and interactive consistency with other elements.