Binaries are just not very resilient artifacts, especially when they so closely depend on their surroundings. High-level programming language code, on the other hand, is much more resilient.
That’s a modern phenomenon. AS/400 or Solaris binaries were different.