If a protocol allows extensions, it is rich by definition because it allows building feature-rich software based on this protocol.
I cannot really agree with that.
An implementor has to consider: Which features are realiably available? If the endlessly possible extensions can't be expected to be there, it becomes much more difficult to use them.
Sometimes it's easy to conditionally enable/disable some functionality in the client based on whether a server extensions is available. Sometimes it's very hard.
--Arnt
