One tradeoff is security. If you're patching vulnerabilities, then just a single .so needs to be patched. With static linking every binary needs to be investigated and patched.
That's where maintenance branches comes in. You fix only the security issue, and push out a new version.