(I know this is old, but just in case someone else finds this thread with a similar problem)
I had a similar issue (same SKU, different custom data configured in a custom web part) that required the same SKU to be added to the cart multiple times. Here's the work around I used.
int tempPlanSKUID = [ID of a blank product that is only used for addition]
//This will ensure that a new cart item is added to the cart
ShoppingCartItemInfo product = cart.AddShoppingCartItem(tempPlanSKUID, 1, null);
... set up the product (options, custom data, etc)
//Set the product SKU back to the actual SKU ID that should be used
product.SKUID = pSKUID;
// Update shopping cart item in database
ShoppingCartItemInfoProvider.SetShoppingCartItemInfo(product);
I don't know if quantity updates will work or not (we don't allow that in our scenario) but product deletion seem to go by the CartItemGuid once you actually get it in the cart.