Well, one issue with rewriting rosters is that it requires you to modify the roster - this is pretty unhelpful if you have already grouped your contacts for a reason - if you have a personal account and a work account, you probably want Kevin Smith in the 'developers' group at work, and in the 'people to play games with' on your home account. Metacontacts allows you to keep this distinction, while still grouping them. Other, more concrete, examples of where you can't go modifying the roster grouping (or naming) is where you're pulling your contacts out of LDAP or the like in shared roster groups server-side.
Renaming contacts works, and it's a fairly good solution for the typical case, but it doesn't always work - I'm all in favour of listing it as a possible fallback when iq:private or private pep aren't available, but I don't see it as a workable solution in exclusion. /K
