Another use case is for send/receive that transfers snapshots from one btrfs filesystem to another. In protocol v2 we added the creation time (otime) to the stream so the receiving side can read it, but cannot write it yet. Question about ability to change otime/btime can be found around internet, there was attempt to make it a utimensat() operation (https://lore.kernel.org/linux-btrfs/cover.1550136164.git.osandov@xxxxxx). In that thread there's a disagreement with providing that and I disagreed as well back then, but over the time I changed my mind also because I found a use case for myself. So I have a WIP to add it as ioctl to btrfs. I understand it's a niche use case and won't attempt to implement it on the VFS level. At least for btrfs and the send/receive use case it's slightly more justified than in other filesystems.