Hi,
All of the important tables that are used in joins have integer ids for best performance. However also having a unique guid on each row provides some advantages.
First is allows for lose coupling of data, so for example we have a Content Rating System where any feature can store ratings and retrieve their ratings by the feature specific item guids. So we could even use this for user ratings if we want to store them by userguid. Currently we use it for Html content, Blog posts and products in WebStore.
Another benefit is for example if one wanted to join the data of 2 sites into a single db, the content could be imported but the rows would get new integer ids, however since we also have the guids it would be possible to re-create the relationships of the new interger ids by using the guids in queries to update the integers.
Hope it helps,
Joe