I custom program carts and don't use off-the-shelf carts. The greatest challenges I've found are:
1. An open-ended method of adding unlimited possible options, of either required or optional value, and maintaining a consistent way of calculating price no matter what those options are.
Scenario: Product has three options: color, size, and add-ons (like a cover for your widget.) However, you should not be limited to color, size, or option, you must be able to have as many options as required.
Color selection (normally) does not affect price, but size might. Color and size are required options to order the item, but an add-on will only add to the price of that item in any case. You must maintain a consistency when it's displayed in the product display, initially added to a cart, edited later, in checkout, and across all receipt and order displays. I've got some posts buried here on how to approach this, but it was . . . a challenge. :-)
2. Methods of displaying stock and inventory, from both a customer view and administrative view. Actually #1 has a deep integration into this challenge: I want to be able to display
6 large green widgets in stock
3 large blue widgets in stock
8 medium green widgets with covers in stock
From a shopper viewpoint, this has been gold, people seem to love that they can see that it's in stock and when they buy it, they see the stock has decremented. which it doesn't really, it is only decremented after shipment- this also is in posts here.
When it gets to the administrative side, you should be able to assemble a printable report, edit inventory from any point, query sales over time, and determine where and when specific items were sold in drill-down fashion.
These things seem fundamental to a cart's usability, though I don't know that they all do so. You said briefly, so I'll stop there. :-)