Robert - not to hijack, but can I ask what you used for a 2m antenna, and how you grounded the cb antenna? I also drive an xterra, and not only does it not have great mounting options, I don't know how I'd ground a roof antenna without drilling holes...my understanding is that the roof rack is just held on with rivnuts.
To answer the original question, I would use a mag mount on the roof if I ever do CB, which is rare, because it would give a decent ground plane, and because if I hit a branch it just knocks the antenna off, rather than tearing off whatever the bracket is. Main disadvantage of a mag mount is that long term it tears up the paint no matter what you do, you'll have a ring and eventually a rust spot. Oh, and performance will never be as good as a longer antenna w/ a decent ground. When I had a truck with a rear tire carrier, I just mounted a 3' fiberglass antenna on the carrier bracket with a 3/8" stud truck mirror bracet, no other ground. It shouldn't have worked well, but it was fine.
Tom