A lot of rules. The first rule being to expect exceptions for every rules.
If a natural language can work this way, why not software industry?
Oh! I forgot uncertainties are bad and you may want to get things done in a way that is expected in a way every one understand without equivocation.
Are not inconsistent behaviour defeating the purpose of abstractions? It is an exception to a well expected result.
Cygwin is supposed to be having a low level consistent behaviour. At least that is what POSIX and unix are all about.
I don't see anything good coming from Cygwin and mingwin discarding this critic by a brush of pragmatism.