When you call SomeObject.Free SomeObject will not become nil. And if you call Assigned(SomeObject) it will return True because Assigned() just tests its argument for nil.
But there is FreeAndNil() - it frees object and sets it to nil.