If you destroy the form/component, and other code (such as the calling code in your case) is still using that component, then you have a "dangling pointer"
Than means your other code access the content of memory that has been freed. The effects of that will be random.
Because if any unrelated code did any memory alloc/free, then the freed mem of your dangling pointer could have been re-used, and the content of that memory changed.
If the dangling pointer accesses that memory, then it depends on the content.
Maybe there is code like "if dangling_object.field1 <> 42 then do_something_that_crash()". It wont crash, unless there is a 42. And any other code might place the 42 there.