Turns out, in reporting trunk, and in reporting 2.3, if from an Untitled window you create a workflow and report design, save the KAR, the workflow and ROML will be placed in the KAR. Then if you simply save a second time with or without changes to the workflow, the ROML will then not be saved in (will be lost from) the KAR. This doesn't happen in reporting 2.1. I'd guess changes made to solve memory leaks may have caused this, because what happens is ReportLayoutKAREntryHandler attempts to get the workflow out of the ObjectManager and it's no longer there (which causes the failure of saving the ROML) I believe having been disposed during KeplerGraphFrame.dispose() during the Untitled => titled window dispose/open transition, and this sounds similar to: http://bugzilla.ecoinformatics.org/show_bug.cgi?id=5095#c14
At r31321 I've committed a fix, which is when objects are added to the _saveInitiatorList in KARBuilder, also add them to ObjectManager. I'm never confident or happy with a fix that relies on OM, but from my testing today I can't find any issues, and the NamedObj (workflow) still gets disposed from OM when the window is closed.
After more testing on trunk, and then in 2.3, if the same fix works in 2.3, we should consider releasing a patch to the core module.