IIRC, they still dynamically link against system libraries. It's just that OSX isn't a moving target with respect to what is expected to be in the system in it's 'base' state of a specific version. So you dynamically link against everything that should be in the system in the 'base' state, and then all other libraries need to be self-contained in the .app directory. The problem with this on Linux is that: 1) the 'base' configuration is a moving target that varies across vendors and 2) most of the libraries/etc that would make up that 'base state' are things that people would want to upgrade/modify/whatever (thereby messing up your 'base state' that you were supposed to be able to rely on) (You don't have this on OSX because Apple is the one that controls most of the things in the 'base state').
"What I'd really like to see is a Linux distro that managed applications the way OSX does - every program is contained in its own directory."
That exists, it's called Gobo Linux. I've never touched it, but you can give it a try:
Thanks for the link to sta.li, I'll check it out. What I'd really like to see is a Linux distro that managed applications the way OSX does - every program is contained in its own directory.