It has been a while since I read the standard, but this seems well into the realm of undefined behavior, not implementation defined.
From my understanding, how the stack is laid out is implementation-defined; attempting to actually observe this ordering in your program is undefined behavior.