when porting gcc (still 3.4.4), how do I exactly know whether I need to pass --enable-sjlj-exceptions to configure?
You should never need it.
Is there a test case which fails if I need it and have it not enabled, and passes otherwise (disabled and not needed, or enabled)?
You can try eh*.C from check-g++, if they all mostly pass, you're set, if not the above might work around the fact there is more work to be done.