You should note that Longjumps do not refresh the exception state correctly, meaning that if you jump across stack boundaries, the unrolling of the exception stack (e.g. when entering or leaving a function that contains a try-finally block, entering a constructor, using try-except, raising exceptions, etc. maybe even such innocent things like a "for ... in ..." loop) will reference a pointer to the previous stack frame, which if you used longjmp to jump across stack frames, will be invalid.
This is broken for both SEH based exceptions (default on windows) and the default exception implementation, but they break in a different way.