I've been in this same dilemma at different times with my son, who's almost five. Here's what works for me:
When choices aren't working, I stop giving them. Whatever he can do on his own, I give free reign (sometimes, kids need us to let them do it as they want, at other times it's better to just say "here, put these clothes on" and give them the clothes you want them to wear). Otherwise, I'm in charge of the decisions.
When the choices are being second-guessed (upset by what they choose), I make the decision. This tells me that there may be something going on in another area of his development and he needs me to be in charge of his day-to-day needs. It would be okay for you to 'take back' the lunch/meal choices and let her make the choices *when* she opens the lunchbox, not before. The same for meals. Whether in the lunchbox or plate, make sure you're serving two things you know she'll regularly eat which are healthy, and then leave the rest of it to her. This saves a lot of frustration on everyone's part.
Don't offer choices when they are tired, hungry, or you're pressed for time. I am more in favor of leading them through what they need to be doing, and doing it authoritatively. "It's time to...." is a great phrase to use. Unlike "I want you to" or "you need to", "It's time to..." is more of a neutral statement. It's just a matter of fact: it *is* time to get out of the bathtub...
What you described from bathtime: this sounds like a bit of a power struggle and perhaps bid for your attention. Instead of asking questions of your daughter, watch her actions and then let those observations guide you in deciding what needs to be done next. Avoid choices around bedtime, too. You know what needs to be done.
When a child quarrels or backtalks with me, I give one confirmation of my decision and then disengage with a book or a magazine or the task I need to attend to. Ignore, ignore, ignore. I usually treat this as a self-indulgent behavior and try to move on, because reasoning with them will often not work. Being quiet will either let them move on from that moment (no audience) or let us know that they need our further assistance in some way. (Tired, needs a break in their room to play, downtime, bedtime, a meal...sometimes just being held with no words...) If we choose not to engage, but just stay our ground without a lot of talking, this sends a stronger message of our adult authority. .... And of course, when they are being pleasant again, we engage with them in a friendly way, as though we need not discuss the previous whining or arguing....
Good luck-- I know my son goes through seasons of this: sometimes it's a moment or a day or a week, and then we don't see it for a while. Limiting the choices to easier ones (you can play with what's on the shelf; you can get your own clothes; you can eat what's packed in the lunchbox) can hopefully help both you and your daughter enjoy each other a little more.