it wont remove it but it wont allow the customer to select it.
it depends on your shipping module but for mine, i went near the bottom of the quote funtion ->
if($shipping_cost == 0) $this->quotes['error'] = 'The method is not available';
return $this->quotes;
}
so if the shipping cost is zero cus the price of that weight is not defined so os make the price zero (which is stupid) Adds this errors message which seems to not display the price or allow the customer to select it.