When recovering a node the existing allocations are communicated via an si.Allocation message. The message after the changes for the interface does not have the placeholder information. That means recovery of placeholder would generate a normal allocation.
The si.Allocation object needs the same fields a the si.AllocationAsk ( document is updated)
The shim must add the fields when it generates the existing allocation list. Recovery on the core side needs to reinstate the fields into the allocation that gets created.