I think there are a lot of what-ifs. If Labour were this popular, the Tories wouldn't have called it, no. They only called it when they were 20 points ahead. That's why Corbyn doesn't necessarily deserve all the credit for pulling off a startling result (not a win but better than expectations) because frankly he is largely responsible for the low expectations in the first place - arguably if Labour had a better leader we wouldn't have been 20 points behind in the first place. I think Cameron may still have resigned had Remain won - if it'd won by a similarly tight margin, 51% remain, we'd have remained in the EU but it may have been enough of a blow to Cameron's authority that he may still have resigned. Don't forget he'd already said he wasn't going to fight a third general election. He was going before 2020 regardless. In retrospect it sounds tenuous but maybe if he hadn't announced that, we might have stayed in the EU - the problem was it made Tory MPs use the referendum to position themselves for the leadership.
I think that's why Boris Johnson joined the Leave campaign despite not really believing in it - he thought Remain would win and that if he could narrow the win he'd be in a good position to be PM. Also part of the reason Labour did comparatively well is that we're in a kind of phoney war over Brexit - it's been voted for but hasn't happened yet, which has neutralised the issue of immigration - at least for now. Normally immigration is a nightmare for Labour and costs us votes. There's an interesting paradox here - a lot of young people, enthused by Corbyn and pro-immigration, haven't yet realised that Corbyn is at least as much of a Brexiteer as May and Labour have been able to go into an election with its most right-wing policy on immigration in decades and still appear the progressive Remainer's option. They'll never admit it, but I strongly suspect that in the privacy of the polling booth, Boris Johnson voted Remain and Jeremy Corbyn voted Leave. Interesting times.