You are correct, that unless otherwise specified, the content under "/jcr:system" is not persisted. We should make that much clearer in the documentation, and I'll log a JIRA about this.
However, it's very easy to configure. Each repository configuration has a SYSTEM_SOURCE_NAME option to specify the particular workspace name and source name in which this "/jcr:system" content should be stored. The format for the option value is "workspaceName@sourceName" (or just "sourceName" if the source's default workspace name should be used for the system workspace).
For many cases, you'll probably use the same source that your JCR repository uses, but you'll want to specify a workspace name that won't clash with your other workspace names. But sometimes it is desirable to store the system content in another source altogether.
If you're using an XML file for your configuration, specifying this option is via a "mode:option" element under the "mode:options" element inside the "mode:repository", or something like:
<mode:source jcr:name="Store" mode:classname="org.modeshape.connector.store.jpa.JpaSource" ... >
<mode:repository jcr:name="My Repository" mode:source="MySource">
<mode:option jcr:name="systemSourceName" mode:value="systemWorkspace@Store"/>
If you're defining your configuration programmatically, you simply use the constant:
JcrConfiguration configuration = new JcrConfiguration();
engine = configuration.build();
(Note some of the other configuration details were ommitted.)
Thanks a lot!