I've just found an undocumented function (in wp-includes/taxonomy.php). It's a shortcut that uses get_object_taxonomies(): get_post_taxonomies($post_id). It returns the taxonomy names.
Anyway, I've just coded another symple function:
function get_taxonomies_info($id){
global $wpdb;
return $wpdb->get_results($wpdb->prepare("
select tax.taxonomy as taxonomy, group_concat(tr.name) as term_names, group_concat(tr.term_id) as term_ids
from " . $wpdb->prefix . "term_taxonomy tax
INNER JOIN " . $wpdb->prefix . "term_relationships rel ON tax.term_taxonomy_id =rel.term_taxonomy_id
INNER JOIN " . $wpdb->prefix . "terms tr ON tr.term_id = tax.term_id
WHERE rel.object_id = %d
GROUP BY taxonomy
",$id));
}
It will return an array of objects like this:
array(2) {
[0]=>
object(stdClass)#115 (3) {
["taxonomy"]=>
string(21) "taxonomy name"
["term_names"]=>
string(16) "term name"
["term_ids"]=>
string(1) "4"
}
[1]=>
object(stdClass)#114 (3) {
["taxonomy"]=>
string(17) "soluzioni_manuali"
["term_names"]=>
string(51) "term name 1,term name 2"
["term_ids"]=>
string(3) "2,3"
}
}
So for every row you'll have 1 taxonomy, a comma separated list of terms of THAT taxonomy, a comma separated list od the terms ids.
Obviously, one can easily change the function, maybe adding some other options (for example a filter-out taxonomy array)
Hope it helps