Large code bases are large, and not every program is your simple crud app with a handful of endpoints that can be meaningfully managed a single function.
I think you are vastly oversimplifying what has been said or why it works the way that it does. I really recommend you read the design document and reasoning, as it is rather clear why they are doing it the way that they are. If you have a cogent contribution to the discussion, please do share.
Registering handlers is a startup activity ... Practically the only time I allow a panic in my code. I also have unit tests for the entire startup sequence so theoretically code with ambiguous handlers would never be committed.
Large code bases are large, and not every program is your simple crud app with a handful of endpoints that can be meaningfully managed a single function.