Connect is a misguided effort IMHO, but as the creator of JSGI/Jack (http://jackjs.org/) I'm of course biased.
JSGI is a lot more elegant. It's more of a functional style (apps are just functions, middleware are functions that return another app, a function), asynchronous support is handled via promises. Connect is very much tied to the Node stream APIs, and ends up being more convoluted and difficult to understand, IMO.
Here's an analysis of Connect vs. JSGI by Kris Zyp: http://www.sitepen.com/blog/2010/06/11/jsgi-vs-connect-for-n...