It's almost a form of price discrimination -- some people will pay more and some will pay less for "a drink", so you offer a lot of combinations in hopes of capturing the most money each is willing to pay.
If you had a basic drink, plus optional extras, it suddenly is clear how expensive the extras are, and many people will decline spending that extra money.
This is all a way for Starbucks to try to capture what would otherwise be consumer surplus. There are plenty of idiots who'll pay $5 for a fancy coffee drink, and Starbucks doesn't want to sell them only a $2 drink and leave the rest of the money on the table.