This isn't really systemd's fault at all. Systemd just happens to be what cleans up /tmp. You would have the same problem with tmpreaper.
The problem is snapd not protecting against something else writing to /tmp.