Coincidentally, IBM's XL compiler is encountering a similar issue and proposing a similar solution of having the stack pointer update conflict with all memory accesses. I think all these corner cases confirm that it is impractical for the compiler to track all accesses against SP and the only expedient solution is a hammer like conflicting with all memory.
Thanks, David