z/OS keeps full compatibility only for applications that don't mess with system internals. If your program does something strange (although supported by IBM), it's possible that it will cease working in few releases from now. Of course there is a whole process of phasing out features, so it won't be a nasty surprise to you or your customers - but still, they are definitely not keeping 30 years of backward compatibility for that.