The problem is with portability. If you write your applications to _not_ do what POSIX requires, they will be broken when they go to a different system which happens to have an FS that doesn't order renames on disk.
> Are you seriously saying you can't understand the benefits of delaying IO but preserving the order of certain operations over a "do it now" fsync() call?
1. Yes, I can understand it.
2. No, this is not what rename() specifies.
So, when an application writer thinks that it will be like that everywhere, he/she is wrong and the application may lose data. That is bad.
Hence, I'm suggesting that for the cases where ordered rename is warranted, we should have a new API.
PS. As I explained elsewhere, unordered rename has its use as well, so one cannot just assume that everyone should drop that and do ordered. It is also not practical to demand that, because too many systems would have to be audited and changed to achieve it. And before you say "but don't we have to fix more apps already" - well, the applications are buggy right now according to specification - not the other way around.