I feel like I'm a reasonably competent player; if the ranking system is to be believed, I'm up in the 90-percentile and hotslogs has me at about a 2850 MMR in hero league. However, I feel like I get a ridiculous amount of flack for taking some less popular talents in situations where the normal choice is less than ideal. We all have our ideal builds, maximizing damage on assassins, maximizing cc on tanks and so on that work fantastic in a vacuum, but I will alter my talent choices to match my team or the enemy better. I do things like pick up perfect storm on Muradin instead of reverb if the enemy completely lacks ADC or get frost strike over rune tap on Arthas if my team is missing snares.
I had a game earlier today where I picked up water dragon on Li Li because we had a Tyrande to pick up the slack on heals. We were already 3 levels behind by the time I got the ult, but after I used it for the first time to secure a kill, a KT on our team immediately lost his mind and declared that water dragon was the reason we were losing. We had positioning problems like you wouldn't believe and the enemy had a Johanna setting up precision strike combos on the other side and really just melting us before any heal outside of an Uther ult could have prevented, but my dragon was the reason we lost.
Anyway, does everybody else like to keep things on the rails every round on their favorite heroes in terms of talents, or do you like going off script to suit the game better? Or to put it another way, is there always a single optimal build for most heroes and if you deviate you're doing your team a disservice?