should it perhaps be the case that the partition's buffers somehow be linked with those of the containing device, or even be part of them? I don't even know if this is possible without significant overhead in the page cache (of which my understanding is very shallow), but keep in mind that this behaviour almost led to filesystem corruption (luckily we only changed a single file and hit a single inode).
It would incur overhead. We could perhaps fix it by having a single
cache for /dev/sda and then just making /dev/sda1 access that cache
with an offset.