For things like pacman cache, it's fine.
For example, on my work machine, I have a separate btrfs partition for my pacman cache, my virtual images, and my clean chroots:
UUID=f3cd1b68-22fb-43e0-931c-76156eb662fc /var/lib/archbuild btrfs defaults,subvol=chroots,noauto,x-systemd.automount 0 0 UUID=f3cd1b68-22fb-43e0-931c-76156eb662fc /var/lib/libvirt/images btrfs defaults,subvol=kvm,noauto,x-systemd.automount 0 0 UUID=f3cd1b68-22fb-43e0-931c-76156eb662fc /var/cache/pacman/pkg btrfs defaults,subvol=pkgcache,noauto,x-systemd.automount 0 0
And everything works fine.
I do this exact same thing. I figure that this just gives greater flexibility if I want to install a new system or whatever and I can then share the existing packages. It also has the benefit of giving me finer grained control over what gets included in a snapshot and what doesn't.
Btrfs is freakin' awesome!