Yes, you can use the same method for free shipping.
Create a db column for shippable.
set it to 1 for products the shipping should apply to and 0 for products it should not apply to
create a cart column for shippable
bind the cart column and the DB column in the add to cart button.
it will get a little different here though,
In the eCart object, create a new calculation called shipWeight set the calculation to:
(([shippable] == '1')?[Weight]:0) * [Quantity]
Then on the confirm page for power store, find the followng code:
$Shipping_PackageArray[$Shipping_PackageIndex]["PackageWeight"] = "".WA_eCart_FormatNumber($WA_Store_Cart->TotalColumn('TotalWeight'), true, 1) ."";
and change it to:
$Shipping_PackageArray[$Shipping_PackageIndex]["PackageWeight"] = "".WA_eCart_FormatNumber($WA_Store_Cart->TotalColumn('shipWeight'), true, 1) ."";