You&#x27;re right; tree-shaking doesn&#x27;t eliminate all instances of dependency bloat. Come to think of it, I&#x27;ve even seen a counter-example in C++. On Windows, a hello-world application using the wxWidgets GUI toolkit is ~2.4 MB, even statically linked. I think the problem, or at least part of it, is that the WindowProc implementation uses a big switch statement to handle all of the Win32 window messages that wx supports. So, for example, the handler for the WM_PRINTCLIENT message has to be included even if your application doesn&#x27;t do any printing. Same for drag and drop. It would be better if the WindowProc implementation looked up message handlers in a table, and the application could ask wx to register the handlers for just the features that are actually used. I wouldn&#x27;t be surprised if similar concerns apply to frameworks like Angular, even in Dart.