I've just searched the code for uses of atime in the code. There's one place where omscan carefully preserves it (I think so that orphans don't appear to be accessed unnecessarily) but that's it.
The only thing that might cause problems with access time is scripts that are looking for files to delete in ~/tmp and ~/temp. I did wonder if omscan's normal temporary file clean up was using the atime for that, but it appears not. Nothing in our server sources uses find's -atime though, at least nothing that grep can find.
I read the kerneltrap article last night. The "relatime" patch looks interesting, but what I found much more interesting was the discussion about fsync(2). We like fsync, we like it a lot, we call it all over the place

Actually, that's only half true. We do use fsync(2) a lot, because we commit changes to the disk a lot. It would be nice to be able to rely on the ext3 journal to do that for us, but we can't. It appears that fsync(2), however, is a little inefficient because it flushes all pending changes for the file system. This might be hurting performance quite a bit -- it's hard to be definitive about it because most changes to the message store are committed with fsync(2).
What the behaviour of fsync(2) does really underline though is that you are definitely better off having ~/tmp and ~/temp are separate file systems and you can have the "noatime,nodiratime,data=writeback" options on those file systems because we don't care about the contents after a crash.
It would be nice to hear from someone who has mounted their message store noatime,nodiratime and measured the performance difference.
Meanwhile, on my laptop, I've just done a fresh svn checkout of the source into a noatime,nodiratime file system to see how much difference it makes. I'll let you know in about 20 minutes.
jch