It's a big limitation, yes. Hence why I called it crude in its merging support. I do keep however separate branches on my projects (we also use subversion at work, but don't branch).

At home my one and only separate branch is were I keep my XML commented code, while the main trunk is stripped of that nonsense. I go around that limitation, when needed be, by simply merging the changed files individually first and then performing a final merge on the rest of the bulk. I can keep it under control.

However at work we are starting to feel the need to branch. Hence why I'm starting to look at other solutions. Mercurial is probably going to be choice. Not only for better merging, but also because we starting to feel a real need for a distributed system... and the changeset paradigm... well, we really are starting to feel the need for REAL source control.