Shared libraries are a necessity on Linux, because Linux users pride themselves on the efficiency of their systems, and if two programs used separate copies of the same library, that would be wasteful.
The exception that everyone could get onboard with would be a common API that all programs use. So, for instance, if everyone could agree to use GTK instead of Qt, then GTK could just be shipped as standard on all Linux distros and there would be no problem of bloat - all programs need GTK.
But that goes against the Linux philosophy of modularity & configurability, so that will never happen either.
So you need to strike a happy medium. Make an attempt to use a shared library, but if your users don't have it, download it live.
The exception that everyone could get onboard with would be a common API that all programs use. So, for instance, if everyone could agree to use GTK instead of Qt, then GTK could just be shipped as standard on all Linux distros and there would be no problem of bloat - all programs need GTK.
But that goes against the Linux philosophy of modularity & configurability, so that will never happen either.
So you need to strike a happy medium. Make an attempt to use a shared library, but if your users don't have it, download it live.