Null For example expert users will want to be able to turn off discoverability since they have already learnt the functionality and they want to be able to customize the software by settings, scripting or programming.
How about introducing a help mode? It can be activated by menu or keyboard shortcut and in that mode all items that are discoverable are highlighted in some way and clicking on them shows information about its functionality.
That way expert users can disable discoverability functions but temporarily activate them if they feel like they need to learn more about some functionality they have previously not used or have forgotten.
The most important aspect to usability is consistency. So all functionality should be the same across the whole operating system as well as its applications. That is where Unix fails miserably, and it is by design. Windows used to be pretty consistent but no longer is since they seem to chase the latest trend that never works. And they only implement it partially, leaving different system design elements scattered around the system. Apple is better but getting worse.
Convincing Haiku of this will be difficult. Testing new ideas in applications is a great way of demonstrating it to them. All functionality that has been deemed as solid needs to be documented in a guideline documentation for future developers.
This is something that almost all open source projects lack since non programmers are not valued or listened to. Only projects that happen to have a programmer with a feeling for usability (and they are not common) succeeds in this aspect, and those are usually one man projects (Stephan Aßmus has this ability to an extent but he is unfortunately not active anymore). Software that has a corporation behind, open source or not, usually employ individuals with this knowledge as designers, architects or project managers. That is why I argue that open source projects will (almost) never be as good as closed source projects.