Ted does claim in the comments that rename() without fsync() is unsafe, but that applications should be granted some sort of leeway in that case. I think he'll have to move away from this position if he want to have his filesystem used in Linus's kernel, because Linus thinks that rename() without fsync() is safe and is the correct way to do things.
The case where you want fsync() is when you do something like: file A names a file, B, which exists and has valid data. You create file C, put valid data in it, and atomically change file A to name file C instead of B, and you want to be sure that file A always names a file which exists and has valid data. You can't be sure, without an fsync(), that the disk won't see the change to file A without seeing some operation on file C.