This is not really an answer, because it contains a solution; I basically just want to join the fight. But you will feel better and prove that Apple is wrong. :)
The problem with Xcode 4 tab implementations is that Apple implemented them as workspace tabs . In other words, creating a new tab essentially creates a new workspace, each with its own sub-pandas with their configurations, etc. In fact, this is a whole environment on each tab. There are a number of problems with this choice.
This differs from most file file implementations by IDE / text editors, in which the tab (usually) is a single file and each file has its own tab.
The problem with workspace tabs is that there are only so many different different workspaces that we could extract from this, severely limiting the actual use of tabs in this way. In addition, additional workspaces simply become a responsibility, introducing more things that the application user must take care of himself: for example, what kind of navigator is, what editor mode is active (standard, assistant, version), regardless of whether the debug console is open, etc. .d. etc. Suddenly switching to a new tab means that now you need to worry about returning the environment to the form you need, because there is a good chance that the other tab has not been left in the state that you expect to find it. This actually discourages the use of tabs because it introduces more work into the workflow.
Bookmarks for files do not have this problem (apart from special cases, such as split viewports), because all the changes are the file you are looking at, and not your entire environment. Moreover, if they are executed correctly, the file tabs work fine as a direct history, allowing you to quickly return to a file that has been processed recently, without much effort. The only way to do this in Xcode is to explicitly set up a new tab environment for each file that you want to work with, but you must be careful not to change the file on this tab, or your file will suddenly be lost: again, more work for the user .
Workspace tabs are also significantly heavier than file tabs, because there is much more to remember, and switching workspaces requires much more than switching files.
The truth (and I think most will agree with me on this), to the developer, file tabs are much more useful than workspace tabs, and since Xcode still lacks the correct implementation of this function, which many consider the basic required functions in the IDE / editor.