The problem is you can't relieve one service that's over-capacity at peak by connecting it to another service that's over-capacity at peak.
GO integration only works as a relief valve to the TTC in the peaks if you dramatically scale up the number of rush hour GO trains to both (a) add the raw capacity that is needed and (b) make the headways short enough that subway-acclimatized Torontonians will switch. That means more tracks and more overpasses and more rolling stock and more battles with NIMBYs. It's a lot cheaper than a new subway, but it certainly isn't free, and it'll only work to a point until GO again hits a capacity ceiling at the post-reno Union.
That said, I'm willing to guess the real reason we haven't seen GO-TTC fare integration to date has to do with the costs on the operating side. Commuter rail setups (especially extreme hub and spoke systems like GO) are notorious for having usage patterns that permit extremely limited "recycling" of capacity compared to the on-off turnover you see on a bus or subway. Chances are when a Torontonian taking the GO train home from work in the evening from Union to Danforth vacates their seat, it doesn't get re-filled by a fresh fare all the way from there to Oshawa. That Torontonian's ride might have actually been 5 km long, but from a cost perspective to GO it might as well have been 50 km long. And if that train turns at the end of the line, and heads back mostly-empty in the counterpeak direction without attracting another bum to subsidize that seat, the effective length (and cost) of the trip that one fare was supposed to cover keeps climbing and climbing.
In contrast, if a Torontonian rides for 1 km on the Dufferin bus and gets off, there'll be another token in the farebox soon enough that will be speaking for that seat for the next 2 km, and then another, so on such that a 50-passenger bus at rush hour will bring in multiple times that in fares paid. (Ironically GO is the one with a partial fare-by-distance, while the TTC is flat).
GO's 5 km-worth-of-bum-per-50-km-worth-of-seat problem can be turned into a 5 km-worth-of-bum-per-20-km-worth-of-seat problem by splitting the route, and having some trains run all-stops and short-turn in the shallower suburbs, and the rest run express and go out to Hamilton, Barrie, Oshawa etc. But that eats into the frequency of useful departures on offer to the 416er, which eats into its effectiveness as a subway relief valve.
I'll agree that better integrating GO with the TTC in places like Mt. Dennis is a great idea, and it will help the situation somewhat by encouraging people to commute in the morning from Brampton and transfer to the Crosstown to get to their job elsewhere on the TTC network, and have their seats become available for Mt. Dennis to Union traffic. But those numbers are probably not huge gamechangers in the grand scheme of Yonge line relief.