People want "it just works", which in this context means write simple code on one desktop OS and be able to run it without change on another desktop OS. And without the resulting binary containing a lot of bloat.
One possible solution would be to have something similar for ICU: [Pitch] [Embedded] "Unicode" availability domain for APIs requiring the Unicode tables
So that you can import Foundation everywhere but not include the ICU data.
And/or just better stripping, so that a hello world app compiles and statically links to the same size with or without import Foundation since you are not using anything from Foundation.
Edit: And if we want to go towards importing Foundation everywhere then potentially an opt-in warning for using NSString and similar bridged APIs, as they are usually worse than the non-bridged ones, would also be useful.
Edit 2: The hello world example actually compiles/links down to the same size currently with just adding the import. But as soon as one thing is used from Foundation, the size increases a lot.
Edit 3: An unused (Swift) class with an NSString member will also result in size increase (but not an unused struct or global function).