Is it possible with Guards? When the route changes, the Guard will check which component was last loaded and unsubscribe its subscribers?
Unfortunately not out of the box. And the reason is it would be hard to discern which list of subscriptions you should be unsubscribing from. For example, it could be any of these :
subscriptions : Subscription[]
subscriptions : any[]
subscriptions : any
Or even subscriptions inside a service that you want to unsubscribe.
However there are libraries that will do some of this for you (For example : https://tutorialsforangular.com/2020/12/14/auto-unsubscribing-from-observables-on-ngdestroy/). Unfortunately they still require either an attribute on the component, and/or some conventions to be used that your subscriptions array is always named the same.
It may also be possible (Since it's open source), to take a dive into the code and be able to apply it to a routeguard etc.