I have casted, produced/observed, and just enjoyed comp TF2 as a casual viewer for quite a while - my thoughts, spewed out in no particular order:
I know Dr. Underscore of Fireside has a plugin called Flask where it matches your player camera in game to the observer's so you know what's on your screen is what the cast will display, without having to deal with stream delay or a separate observer feed. When I cast with them I find it a really powerful tool to know that what I'm talking about and what the stream is seeing is 100% in sync.
Static cams can be a useful tool for an occasional cutaway to cover chaotic but localized fights like last pushes, but should be used lightly since a good POV is always more compelling.
I've always thought pre-made smooths that follow rollouts, like they do in CS:GO, are theoretically possible within the engine and could be incorporated into casts with enough production value.
I think cheatfeed is a must have for observers when it's an option - I know some older producer/observers swear by their ability to follow a fight organically and refuse to use cheatfeed at all and I question that approach. I think the best way to observe is a healthy mixture of using your own gamesense as an observer to predict the flow of the game, while also checking the cheatfeed to make sure you catch critical moments.
The danger of cheatfeed is that when you rely only on cheatfeed to observe you start to lose any surprise or drama in the match, as a viewer you start to sense that the player the observer cuts to will always be the one winning a given fight or making an effective play.