Regarding custom persistence - it is a mistake in the documentation. This is documented in a separate document and it is not in the Programmer's Reference Guide. Send us an e-mail if you want us to send you this document. "Custom" persistence may be useful if, for whatever reason, you cannot use all other types of persistence.
Regarding "not persisted" - no, you cannot use "getEntity" and "updateEntity" for such objects. These functions require an id to identify an instance. "Not persisted" BO's do not have an id.