I would be interested to see how this can help in normal price calculation scenarios that presently require customization. For example, the one that is very common that I have to customize in each version of nop is the flexibility to adjust quantities of associated products within a kit. Presently, the quantity of an associated product in a kit is a fixed quantity, but this scenario isn't that popular in my experience. Typically customers want to buy various quantities of items in a kit, but still only buy qty of 1 for the overall product.
So I end up just creating a custom product template with numeric input box for each attribute. Where things become complex is, within priceattributeparser, pricecalcuationservice... there is no referenced models... data is retrieved with the domain classes, so even touching quantities in those objects persists to the database. I end up either adding the nop.web (where such a model exists) or just create a class in the services library project so that I can adjust a quantity of an attribute and pass along to the PriceCalculationService, and have discounts, etc all work correctly. All the functions within the pricecalcuationservice and parser classes use the domain classes instead of a model equivalent (which forces even more customization).
So...long story short...if price calculations could be abstracted from the core, then I wouldn't have to copy/paste or even re-code each version of nop...I could just keep using a plugin. I don't expect the scenario I describe above to be added to the core for the same reason this
work item was created, which is, the number of possible scenarios of pricing workflows are extensive, and the core couldn't possibly account for all scenarios. This would allow the ability to respond to business with faster solutions without customizing the core. Hope to see this in 3.8!