I noticed that setting a label is only supported via a mountpoint for btrfs, while in theory a label can be set on a device.
btrfs filesystem label [<device>|<mountpoint>] [<newlabel>]
Most other set_label functions seem to use the device. Which in Cockpit leads a somewhat inconsistent experience when the filesystem is not mounted. (In theory we can work around it by first mounting it temporary, set label and umount).
Changing the API over to a mountpoint would break libblockdev's API so I guess that is a not an option and this isn't a real "breaking" or high priority issue for us. (Read: no issue at all)