One of the big problems with all the internal hubs I've used is they don't shift under load. For mtb riding a typical scenario is suddenly finding a steep slope and needing to be in a low gear now. Derailers don't like shifting under load but they can be forced to.
Also I find having having a selection of close ratios (cassette) and wider ratios (chain rings) very useful. Dropping down to the granny ring to negotiate a slow section and then going back to the middle ring afterwards is a common occurrence. Current internal hubs make doing that much more complex and error prone.