it turns out that ~2.6 seconds of the build-nothing case is spent in the kernel in stat() or fstat(), and another 2 seconds can be saved by using make -r (otherwise make does ~3000 stat() calls looking for RCS and SCCS directories).
of course, i haven't tried this on linux so it might be completely different there.
also, some great simpsons episodes have been on this week.