The use of GUID is primarily based on the need to generate globally unique identifiers. Theoretically, it might be useful when there's a table (with its ID) in our database and we are regularly importing records from external systems into this table. If both our local database and external systems would use GUID for their identifiers then there should be no ID duplication conflicts. However, there's a performance hit when using GUIDs values as PK. They are larger (16 bytes), so PK indexes are larger, it might case page splits, so both inserting and retrieving the records takes more time for DBMS than using integer type values for PK identifiers.
I doubt having GUID as primary key is better than having local internal integer ID, and to store GUID values of importing records into a separate column in my table. Would like to hear opinions on the use of GUID in real world examples, pros and cons :)