Rereading, it seems like maybe I didn't answer the underlying question:
Using "seek" at the application (really, kernel) level doesn't necessarily cost any "seeks" on disk - all it does is update the offset number associated with the file handle.
Once you ask the kernel to read or write it will translate that offset into a disk offset, which may involve reading blocks to figure that out, but has a best case cost of one seek - just like your direct access would.
It is absolutely possible to do that: that is exactly what the file system driver does, after all, so it must be possible for someone else. All you need is access to the raw disk.
There are of examples of people doing that for existing file system formats. You can also do this by hand if you want.
If the file system is in active use you have some technical challenges that make it harder to do - because the content on disk is changing in a way that you can't quite see - but it is still possible.
You can also ask the kernel directly; the xfs_bmap tool does that, and at least some file systems implement the same interface so you can directly ask.
Calculating the location will take the same number of seeks that the kernel would take, though, so you are unlikely to actually save anything doing this.