Snaps have a sharing mechanism called interfaces but yes, the software author has to declare they want to use it, no magic there.
So, they've reinvented dependencies (though, to their credit, they gave them a different name), one of the very things snaps were intended to alleviate?
Look, don't get me wrong, snaps have some interesting advantages (sandboxing being the one major selling point, IMO). But, again, they're no panacea.