Quali sono i vantaggi e gli svantaggi dell’utilizzo del GAC?

E in più, ci sono casi in cui si deve usare la cache globale degli assembly o dove non si può usarla?