If Scheme code calls C++ code that throws an exception, then the stack will be unwound by libstdc++ and Guile’s ‘dynamic-wind’ handlers and such will not run. That’s probably the main difficulty.
Likewise when C++ code calls Scheme code. TeXmacs and LilyPond both embed Guile in a C++ code base so their developers probably have more insight into this. Since these are old projects, it could be that they don’t use C++ exceptions. Thanks, Ludo’.