I know this is an ancient thread, but FWIW, the limit of 128 has been around since around Vista. We haven’t changed that code in a very long time. It exists as 128 on Windows 7, 8, 8.1, 10, Vista, etc. We’ve also had a number of reports of people hitting this limit on Windows 7, and then running the FLS Checker plugin and seeing that they have the same limit as on Windows 10.
Dynamic linking is good to reduce the amount of duplicate code in the process (with 50 DLLs loaded and static linked to the runtime, you get 50 copies of that common code in memory), and to allow servicing of the runtime for security, bugs, etc. I get the convenience of static linking, though. So in Windows 10 going forward, if testing goes well, the limit will be a bit over 4000, rather than 128.
Official announcement:
https://blogs.windows.com/windowsexperience/2019/01/09/announcing-windows-10-insider-preview-build-18312/
Pete