With tantrums, you can't question why or how to prevent. All kids do it. For all the usual reasons. If you want the tantrums stopped, you have to outlaw them for any reason, and that takes discipline. It does work, if you're willing to go that route. This book is great: Back to Basics Discipline by Janet Campbell Matson. I have three non tantrummers.
Also, you never discipline genuine fussiness for fatigue, hunger, fear, after nap monster, etc, just the bratty melt downs that quickly become habit. Your child is very smart, knows the difference, and won't do it if you're FIRM and don't allow it.
If you want it to be outgrown, ignore. If you want it to stop now, never ignore. If time outs don't faze him (some kids aren't scared of time outs and will tantrum IN the time out which defeats purpose of teaching self control, but if it works, it works), swats worked in all mine right away. Literally, now even when my super difficult 2 year old starts to well up in a pre-tantrum way, all I have to say is, "Hey, no fits" calmly, and she doesn't start it, she just moves and and resumes playing, or calms down enough to express herself if she needs to let me know what's upsetting her. Once given the warning, she knows she has a quick choice to make for the next step.
Also, you're right, kids often DON'T like so many choices. You know when sometimes you want the MAN to just PLAN the date and tell you what you're doing...kids feel secure if you're in charge, so while you do want to offer choices throughout the day, sometimes it's not warranted. If it frustrates your child, take that cue to make a choice for them. It's OK to say, "Its bath time. It's bed time." But again, nothing you do will prevent the desire to throw a tantrum. You just need to decide how you want to handle tantrums.