How can I have drupal commerce create a sku and adjust prices on the fly?
Try this rule, it will alter the line item's label based on tokens specified when a product type "Product" is added to cart. This is how you can keep it specific to a certain product type. A line item's label is defaulted to the product's SKU.

All of your term-reference attributes will be exposed as tokens. For formatting ideas, check out Commerce AutoSKU which generates product SKUs at product creation (not line item.)

{ "rules_alter_line_item_sku" : {
"LABEL" : "Alter line item label",
"PLUGIN" : "reaction rule",
"OWNER" : "rules",
"REQUIRES" : [ "rules", "commerce_cart" ],
"ON" : { "commerce_cart_product_add" : [] },
"IF" : [
  { "entity_is_of_type" : { "entity" : [ "commerce-line-item" ], "type" : "commerce_line_item" } },
  { "data_is" : { "data" : [ "commerce-product:type" ], "value" : "product" } }
],
"DO" : [
  { "data_set" : {
      "data" : [ "commerce-line-item:line-item-label" ],
      "value" : "[commerce-product:type]-[commerce-order:uid]"
    }
  }
]
  }
}