I'm kind of surprised that custom-attributes based on product-type doesn't exist out of the box (or even just custom-attributes not based on product-type)... given all the thought that has been put...