No, you don't need to create unique fields for each option.
Think of the category field as a container. It is going to hold whatever your user selects from the drop down. The item they select will go into the category 'container' and stay there.... unless they change their mind and select a different option. Does that make sense?
Per Anuma's earlier suggestion, you can add an expression box to your form to total the costs for the category. When you add the expression box, you'll be prompted to enter an XPath. Select the fx button to open the formula editior. I believe the following will do the trick:
sum(/my:expenseReport/my:items/my:item/my:cost[../my:category = "A"]
That will sum up all cost items where the category is equal to the letter 'A'. You can change the value in the quotes for your different categories, and add as many expression boxes as you need to display the totals.