> Applications do not talk to the filesystem directly,
Sometimes, they do. For instance, BTRFS_IOC_CLONE to do a copy-on-write clone of a file's contents (now promoted to other filesystems as FICLONE, but many other ioctl operation codes are still btrfs-specific; and other filesystems have their own filesystem-specific operations).
Those generic syscalls are (supposed to) don't change, the internal filesystem calls can and do change.
This is one reason why ZFS regularly breaks, on top of it can't use GPL exports.