I agree that a big standard library is useful, and that there are areas that could be expanded (e.g I think the stdlib should include a `heap` implementation). But it only works if there are contributors interested in maintaining the modules. For some of the current modules, that's not the case. Take a look at `xmldom` and `xmldomparser`. They are used in `0.2%` and `0.5%` of projects, they haven't been touched in a long time (`xmldomparser` hasn't had a commit in over 2 years), they use outdated naming conventions and so on. Since obviously nobody cares about these modules, why are they included in the standard library?
Another advantage of Nimble packages is that they are updated independently. Updating the stdlib is an all-or-nothing kind of thing. Either you deal with all the breaking changes in the compiler and stdlib at once, or you don't update at all. This usually means that stdlib modules are very limited in what kind of breaking changes can be done - this is why we have `parseopt`/`parseopt2`, `re`/`nre` and so on. Because of this, bad design choices in standard libraries has a tendency to stay around for ever (examples of this can be found in any popular language).