Hmm... What is inside your custom creation function? RFCs get called on objects as-is without going through finding them, so the object ID is irrelevant in offline mode.
That doesn't appear to be the case. Following the functions:
I call Send
Send calls SendRFC
SendRFC sets a local 'executeLocally' flag
Later in the function it checks this flag, and if true calls TNObject.FindAndExecute passing the object ID, rfc ID (or name), and params.
My custom create handler isn't affecting anything, if I switch to just straight TNManager.Create I still get the issue.
Here's something odd. I checked the Example 2 scene, which spawns cubes. The cube prefab has ID 8 assigned. The first cube that spawns has ID 8, the next one has 9, etc. BUT if I let all of the cubes delete themselves and then spawn another one, it has ID 8 again. So if I had spawned 5 cubes the first time, the cubes had ID 8, 9, 10, 11, 12. If I let all of the cubes delete, then spawn another five cubes, they have IDs 8, 13, 14, 15, 16. It seems that the first object to be spawned, if there are no other dynamic objects in the scene, will get the ID of the prefab rather than an actually unique ID. I don't know if this is intended behavior or not, but it seems that assigning a non-zero ID to my dynamic object fixes the issue with not being able to call RFCs.