Hi Derek,
It seems that this discussion about adding “final” declarations is in many ways similar to discussion about “show_full_control_panel_end” hook. In general, both discussions are superficial and unproductive. Developers are saying: “Don’t take away from us our beloved ways of extending EE; these ways are essential in context of our projects”. To this EllisLab people answer: “These ways of extending EE are dangerous; they break things, they generate unneeded support requests, so no more creativity of this kind will be allowed”.
It seems that no party in this discussion will convince the other party. In some sense both sides are right: some ways of extending EE really can break things, but, on the other hand, these same ways are essential for some projects. In some sense EllisLab has upper hand in this discussion - they decide what to introduce and what not to introduce into EE. But significant restrictions on how EE can be extended in the end will lead to the Wiki article “How to make EE2.x as flexible as EE1.x” being written and many respected EE developers doing massive search/replace in EE core files upon each EE installation. Such guerilla warfare is not what either EllisLab or EE developers need.
What both EllisLab and developers need is creative approach to those ways of extending EE which might interfere with EE functionality or with functionality of other add-ons. Perhaps it could be proposed that those dangerous ways of extending EE could be enabled conditionally, i.e. disabled by default but could be enabled by by site-admin perhaps by changing some values in site’s config. Alternatively, or in addition to it upon installation of each extension which uses those dangerous ways an alert might be displayed informing users that something might break. Also such extensions can be displayed in other color, e.g. in red. There could be an option or button to disable all such extensions etc. And when something breaks support stuff can always ask a user either to disable all extensions or to disable those dangerous ones.
Simply removing such ways to extend EE as using “show_full_control_panel_end” hook or extending EE classes is a solution too crude for EE developers. There is much creativity which can be displayed in seeking solution satisfactory for both Ellis Lab and EE developers. Let’s be creative.