You seem to have misunderstood. The inefficiency isn't in the speed of such operations. Its memory usage that is inefficient.

To append/alter any hashtable stored bvars, the data has to be duplicated.

$hget(table, item, &bvar) creates a 2nd copy of the data: one copy resides in the hashtable while the other copy is stored in the specified bvar. That is where the inefficiency lays.