Why do you use GAC APIs?

I can think of three reasons that you need to use GAC APIs, instead of the existing tools.

1. Customized installer: You need to install assemblies to GAC, and you cannot install MSI.
Example: The assemblies are created when your application runs. So those assemblies do not exist when the application is installed. You cannot use MSI in this case.

2. Customized Management tool:
The existing tool does not give enough flexibility to managed GAC. The cache viewer shell extension is good at visualize GAC's content, but you can't show trace reference, and you can't install/uninstall assemblies with trace reference. Gacutil has enough features. But it is a command line tool and you want a GUI application. So you decided to roll your own tool.

3. Migration
Say you have some assemblies installed on machine 1, and you want to migrate them to machine 2.

What is your reason to use GAC APIs?