-snip-
Sure, but at no point in generating a private/public key pair do you need to use a SHA256 function (or any hash function, for that matter). If you want to take some random entropy, turn that in to a seed phrase, turn that in to a seed number, turn that in to a master private key, and then turn that in to individual private keys like hierarchical deterministic wallets do, then sure you use plenty of hashing, but that does not have any bearing on how unlikely a collision is.
I would accept the argument that elliptic curve multiplication is a complex process, but again, that doesn't really factor in here. The reason we don't have public key collisions is because we don't have private key collisions. The reason we don't have private key collisions is as simply as because we have almost 2
256 private keys to choose from, which is an unfathomably large number.