No, that only lets you jump out - not e.g. jump between several suspended computations.
It raises a valid issue though: The article's author is operating under the assumption that any replacement language must be totally interoperable with C -- both calling and being called. If you have some crazy stack-reassignment logic in a new language, it will break a native C function's ability to longjmp out of a calling function written in the new language.
Sure you can. This is how user-level threading packages work if you don't have kernel support.
Interesting, it seems many C implementations do support this. It's not standard C, though.