I would also add to this that in order to open two instances of an app the app explicitly needs to support this. For example, you can't open 2 instances of Calculator.app side by side.

This is really annoying.

Yeah, I always want 2 calculator apps when I'm speed calculating... what?

You may want to see the result of one calculation while doing another calculation?