Making classes final by default enforces the Open/Closed Principle more precisely — 'open for extension' does not mean 'open for inheritance'. Composition, strategies, callbacks, and event listeners are preferred extension mechanisms. Final classes reduce coupling, clarify intent, and give developers freedom to refactor internals without breaking external code. In PHP, where mocking final classes is a limitation, @final annotations offer a softer alternative. The core argument: starting open makes it hard to close later, while starting closed makes it trivial to open when genuinely needed.