"If the version control (or maybe just the tools built around it) was really powerful, then potentially it could be a backend for issue tracking, where "issues" are special files or directories."
There seems to be a bit of convergence on this idea; I know we've tossed around such stuff some in monotone, especially when we were also experimenting with using our regression test suite as a bug tracking system -- I think that's a very powerful bit of integration for such a system to include, by the way -- and Aaron Bentley's actually put together a system called Bugs Everywhere.
My biggest problem with such a scheme is that part of what issue trackers do is track discussions; and discussions do not follow branch semantics. You generally want your discussions to be global -- gathering together comments from two different branches to figure out what's been done on a bug sounds like a royal pain. OTOH, bug states (open, closed, ...) very much do follow branch semantics -- closing a bug in a branch, then having it closed on mainline when the branch is integrated, is very slick. I'm not sure what the right solution is.
I'm hoping that as these systems get a little more mature we'll see a lot more work on workflow processes and stuff...