I think it probably should have been given for consistency(they normally always side with the attacker regardless of what happened) but that is a bad comparison. That would be a dangerous tackle, this was a coming together. When none of them get to the ball or anywhere near it and neither player can avoid the collision, then there is a grey area. The player who wins the ball normally decides whether a coming together becomes a foul or not in those situations and neither of them did.
To my eyes, had Cancelo left it, Ederson collects that ball easily and then it doesn't matter if he catches Fraser on the follow through, because he's won the ball. A keeper has to fully commit to that, I'm not sure what happened there. Either Eddie didn't shout loud enough or Cancelo has ignored his claim to the ball. Eddie may have still been dazed or winded from the earlier collision, which may have impacted his ability to communicate it clearly. So there's that too, could the game have been stopped for that collision earlier?
Like I said, I'd have wanted it but it's not quite black and white either. Part of me wishes it had been given because I really don't think it would have had much bearing on the result. So we could do without the narrative, that we've got away with one, playing in refs minds for the next big call. That call could be used to justify a soft/generous decision against City, which could well have a bigger impact in terms of points.