Why you add a reference twice?
Just to show that when We release 1 of them - 1 remains.
Why you link to an outdated forum?
Because there is answer:
Window := ComObjEnwrap(9, pwin, 1) ; <-- does pwin still need released?
if I wrap the pointer with ComObj(9,ptr,1), would I still have to Release the object?
No.
At help of old version 1.1.12.00 - August 14, 2013 We can read:
ComObjActive is polymorphic; that is, any function-call beginning with "ComObj" that does not match one of the other COM functions actually calls ComObjActive. For example, ComObj(9, DispPtr) and ComObjActive(DispPtr) are both equivalent to ComObjEnwrap(DispPtr)