Part of the magic of TurboGears Widgets (and carried on in ToscaWidgets) is that you have a bundle of resources that come along with the widget object you add to your page. Generally, this is a couple of JavaScript files, some CSS files, and some images. This is certainly the case if you're using a Widget as part of creating a theme for a TurboGears application.
The resources are registered as a static directory in the framework (in TG, accessible as /tg_widgets/%(resource_name)s/ - usually resource_name is the module name), and you can then use JSLink and CSSLink and friends to provide the correct URL when referencing those resources. pkg_resources is used to provide the base path for the resources, thus allowing resources enclosed in .egg files to be found.
The widgets.py file for a TurboGears Widget generally contains this by default:
resource_dir = pkg_resources.resource_filename("tgsociable",
"static")
widgets.register_static_directory("tgsociable", resource_dir)
Having the request go through the framework - through an interpreter at all, can slow things down quite a bit. It's not so much a throughput issue as a latency issue - it takes longer to actually start sending the data for the resources. As you can imagine, the .egg file format isn't as fast as reading from the filesystem either.