Stumbled on what looks like some sort of bug (probably, of my own code). I spent the last hour trying to understand why this code:
$subterms = get_terms("customtax", array( "hide_empty"=>0, 'parent' => $parent_term->term_id, ) );
returned and empty array, while i was sure my custom taxonomy had lots of children.
Digging in wordpress code i found that get_terms calls a function called "_get_term_hierarchy".
This function uses some sort of caching system. It looks for an option named "customtax_children" on wordpress' database, and populates it if it's empty.
On my database, that option had an empty array as value, represented by a string like this one: "a:0:{}".
All i had to do was to delete that option in order to force WP to repopulate the cache:
delete from wp_option where option_name='customtax_children';
I hope this helps somebody.