I maybe wrong, but I remember (circa 2011) that any access to ZFS on Linux entirely ignored page cache buffers unless you use mmap, so by "default" only binaries and libraries get double cached.
ARC is better than page cache in linux right now. It's not used by linux because:
1) Linus irrational hate towards ZFS (every rant I read shows clearly that he has next to zero knowledge about ZFS)
2) Patents and Licensing
Also, it's a linux's problem that it's doing that, not ZFS - nothing is cached twice on other platforms that run ZFS. Why? See reason #1.
ARC is better than page cache in linux right now. It's not used by linux because:
1) Linus irrational hate towards ZFS (every rant I read shows clearly that he has next to zero knowledge about ZFS)
2) Patents and Licensing
Also, it's a linux's problem that it's doing that, not ZFS - nothing is cached twice on other platforms that run ZFS. Why? See reason #1.