The Channel API uses the same mechanism that Gmail chat, Google+
notifications, etc. use to deliver messages to javascript clients.
Currently the most widely-available way to do this is by long-polling
rather than by websockets. So, the _implementation_ uses long-polling,
but that should be opaque to apps -- your app doesn't need to
implement all the plumbing to handle any sort of polling.
The .js file lives on another server because that server is
responsible for the long-polling plumbing; it's mostly a detail to
facilitate rollout. Whether or not the .js is blocked is almost
irrelevant, since the actual long-poll goes to the same server and if
that's blocked nothing will work. There is a feature request on our
issue tracker (http://code.google.com/p/googleappengine/issues/detail?
id=4764) to move these off of the talkgadget domain.
Hope that sheds some light-
-Moishe