one partition could not be mounted on two directories(i may be wrong here)
You are more or less wrong on this. Read up on bind mounts (man mount).
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!