No, this is not true.
This behavior is undefined since 24.2.6 [bidirectional.iterators] states that the --it is that the result should be dereferenced. Since it points before begin() in your example, this condition is not fulfilled and, therefore, the code is illegal.
Since there is no need for diagnosis, this may seem to have worked, but you cannot (and should not) rely on it.
Daniel Frey
source share