When requests with a session id are parsed, the id is vivified in the LogicalSessionCache decoration. The embedded storage engine does not set up the LogicalSessionCache (the decoration is a null pointer), so sending a session id to mongoed triggers a segmentation fault when LogicalSessionCache::vivify is called.
Since session based behavior can't work without the cache, any session information received when there is no LogicalSessionCache should just be ignored, avoiding the crash.
This is a required change for SERVER-32064, which will change the shell to use implicit sessions, meaning (almost) every request will have a session id. Alternatively, the shell could check the isMaster response it receives when creating a connection and choose not to send session ids when sessions aren't supported (like what drivers do), but this would require more work and could be done as a follow-up or as part of SERVER-33606.