In answer to your question about splitting modules into two. Yes, you could do that (but not in the initrd itself - see main reason at foot of this post). But the list of modules needed (when not provided inside a huge kernel) needs to be quite large simply because there are so many different boot media types that need to be catered for if you want a general purpose boot on any computer initrd. You do not need all the non-media related modules at that boot initrd stage and do not need to include them inside the initrd at all. Unfortunately it is not easy at all to separate out the needed from the not needed and in practice it is simpler just to include them all. Yes, that makes a bigger initrd, but if you check WeeDog the HowTo Cheatsheet (viewtopic.php?p=36426#p36426), fredx181 of DebianDog provided a slim-modules script (cr_initrd) mechanism whose purpose is in fact to select only boot media modules for inclusion inside the WDL initrd: viewtopic.php?p=36345#p36345 and you will find some other posts about using that also linked to from the Cheatsheet.
You certainly can't keep all modules out of the initrd if not using a specially compiled huge kernel (since that is the whole point of compiling a huge kernel in fact).
In terms of simplifying the procedure for including the 'needed' modules inside the initrd, that's what fredx181 was suggesting in terms of including his cr_initrd functionality in modify_initrd. In other words a special helper script should be written to simplify that task (the initrd itself is best left to do its own job without needing that extra code functionality built into it since once completed that helper script code would be entirely redundant inside the initrd itself, so best not there at all, and wouldn't work anyway - see below...). I haven't myself written that helper script that would either incorporate or call up fred's cr_initrd script, but I'd be happy for anyone interested to do so - I may never get round to that... Note that the initrd itself could not be used to pull in the needed modules, since it isn't itself able to see the boot partition until the modules are already loaded into it - that's why you need a pre-first-use helper script to do that job for you.
Note that one prime reason I designed the initrd/init to be in two parts (init and w_init) was to allow w_init to be external and thus able to be easily user-customised. The idea was to also allow users to contribute their own w_init variants (i.e. external w_init was intended to be considered a user-plugin to allow user contributed variants in the same way build_firstrib_rootfs script also has a user-contributed plugin approach, which rockedge, for example, has well-utilised to provide WDL_Void Linux variants particularly for Zoneminder uses). Basically I wanted a simpler forum-community way for user-involvement/contribution rather than some other alternative woof-CE-style complex build system (but also designed to adopt various useful Puppy components and in particular its huge kernel/module combinations and some portable sfs addons) - in WDL, build script system simplicity has been behind every design decision, along with a careful eye on overall flexibility, strong modularity, and superior multi-layered functionality (in significantly smaller initrd/init code size), which is really why WDL components are so easy to manipulate for so many distro uses (from tiny to huge) - the very generic WDL initrd design being key along with the principle of using official upstream package managers for true scalability and reliable upstream repo use.
In practice, I may not adopt every user-contributed implementation or idea into the core initrd/init design, which is for a particular family business-related use of my own (and I'm too busy to add/change much in the core WDL scripts at the moment anyway), but all working plugins will certainly be shared and published, so all such contributions are welcome and encouraged. That's the point of a plugin-based build system anyway - allows a tight and consistent core design without limiting flexibility and overall development/scale.
w_init also allows users to nicely provide quick bug-fix discoveries, such as you did, miltonx, for the nosuid,nodev inram issue (which, funnily enough, I originally missed because chose to use huge kernel rather than the official Ubuntu Kylin kernel/modules...).