As far as I can tell, TCC doesn't quite handle multiple compiler states yet, and these tests prove precisely what can be accomplished with the state of the art.
As first implemented, if a package was added to a context, TCC would attempt to "use" it. This did not allow users to define packages in their scripts (they had to be separate modules), which is silly. I realized this while working on a hack wrapper for Cairo. Under the original implementation, it is easy to modify the compiler context by hand, but that makes it difficult to separate the Cairo package logic from the actual compiler usage.