@steve The statement about null IDs is now considered incorrect, and an erratum was proposed: https://github.com/w3c/activitypub/issues/476#issuecomment-2563909463
As for "transient", the spec says "MUST have ... identifiers unless intentionally transient", but it doesn't define "transient". I think if you don't know what it means, you can't do it intentionally. Therefore, "transient" objects are not possible. Problem solved!