I somehow don't like those silent returns. We fix a null access by disabling another null access silently. Thats ... weird.
What do you think about:
if (!efl_finalized_get(obj)) return;
This would be IMO a lot better, as the finalized bit is a way more defined thing than the box field. As thats a implementation detail that is not defined to be there at this point ... :)