if result[definition].data.img was deleted, would that also delete result[definition].img...
No. Objects are reference types. While the deletion will be observed from theme[sprite] , it will not be observed from result[definition].
Because theme[sprite] and result[definition].data are references to the same object, any changes made to that object are observable from any reference to it.
But because result[definition].img is a reference to a different object that happens to be referenced by the other, it is an entirely unique reference, and isn't affected by what happens in the other object.
+-----------+ +-----------+
| | sprite | |
theme | |-------->| |\ v---deleting this reference...
| | | | \
+-----------+ +-----------+ \ img +-----------+
^ \ | |
/ \----> | |
/ | |
/ +-----------+
definition / ^
/ /
+-----------+ / /
| | / /
result | |-------/ img /
| |----------------------------------/
+-----------+
...doesn't affect this one-----------^
and vice versa
If you delete one of the img properties, the other stays intact.