Call it tin-foil hat conspiracy, but I feel that the reason they haven't added proper replay viewing or easy tournament spectating from within the client is because the exposure they get from people going to third-party venues to watch streams and VODs is more valuable than what they would get from keeping those things in-house.
You go on Twitch any given night and League of Legends has ten times the viewership of any other game. How much of that audience gets funneled off into in-game spectating or just waiting to watch VODs if they're available and (as they naturally would be) of better objective quality? Do you want to sacrifice the exposure of being the most talked-about and sought-after quantity on those services for the sake of user convenience?
Now, obviously that's not the thing you want to tell people, so you just say something about technical hurdles and "coming soon" to quiet the angry voices while maintaining a beneficial status quo. That's my thinking, anyway.
Could be a reason, but I'm more inclined to believe that this is not a major concern for Riot. I think the reason why they're taking so long with replays is... When they first mentioned it, Season 3 was already approaching and they still had to deliver on Spectator Mode in itself, so that would require sweeping changes. Then they put far more emphasis and resources on e-sports with LCS et cetera, so now they're back at "wait until after Season 4 because changes". And then there's also the factor of big client changes being found through datamining, with stat tracking / the post-game lobby in particular, and who knows how much of that will carry over to the game (never mind us not knowing the scope of this). Historically lacking ample foresight, in essence.
Their biggest concern with replays as someone else already pointed out -has- to the strain it'll cause on servers though, since they want them to be available server-side as well. On PBE right now you can open up your match history and replays of your past 10 games
should be available - I say should since sometimes it bugs out and not load - both for yourself and for every other person's public profile. That has to require a ton of preparations for Live servers, especially one as plagued as EUW recently.
That said, I'm not convinced that League replays (in their current state) would be damaging to Shitch.tv streams as the appeal behind both is different. As much as I'd like less viewership on that piece of shit website, you tune in on streams for the personalities / commentary and not so much for exhaustive play-by-play detailing (exceptions notwithstanding), which you're more likely to find on YouTube or during tournaments. It will also appeal to those who are looking for individual improvement, since they could finally pinpoint what went wrong in a specific match and move from there. Streams in comparison are just general pointers in comparison, and rarely 'personal' in that sense.
However, I'd argue it would be in Riot's best interest (financially) to go as far as DOTA 2 does with replays when it comes to functionality, if logistically feasible given their size. More specifically: the ability to host audio tracks and for commentators / tournaments to create some monetization out of that among other things. Is it fantastic for them to have so much exposure on Shitch.tv? Yes. Would it be even better if they could control some of that money flow through their own service and (ideally speaking) have it run more efficiently than that crap third-party website? Yes. DOTA 2's more broad feature set also hasn't hurt their following on stream-dedicated websites (especially with tournaments), so as a business I'd like to have a piece of their pie if it was a realistic thing to pull off.
I dunno, I'm rambling. Just want mah replayz damn it.