I've tracked the problem down to the point that a reply port reused for synchronous messaging happens to be not empty, so that the BRoster::GetAppInfo() invoked by the BMessenger constructor gets the wrong reply from the registrar.
Uncommenting the #if 0'd check code in the synchronous BMessage::_SendMessage() triggers the debugger (even earlier, when trying to open the File menu the second time).
I wouldn't completely rule out, that the bug is in the StyledEdit or printing code, but it seems very likely that the app kit is to blame. So I throw axeld into the CC for good measure. :-P