How to effectively remove module created fields?
This is the code snippet I usually use to remove fields created by a custom module:

if (field_info_field('my_field_name')) {
    field_delete_field('my_field_name');
    field_purge_batch(100);
}


Hope this helps