That will be used, the address from link0, and optional further links are written out as is to the corosync.conf no transformation whatsoever, if it was IPv4 on selecting that will be written there, and vice versa. So this won't change.If later the application uses the IPv6 on that interface, it is a flaw of the application. The admin selected an interface AND an IPv4 family address.
That's what must be used. If other address family is being used, is wrong.
Again I'm really sorry this is flawed. I select link0 with ipv4 address that's what muse be used. I selected a public ipv4. Proxmox can listen on all interfaces, for sure. No problem. But to send traffic, it must use the selected interfaces and addresses. That does not happen.
If people select links and addresses, those are to be used. I don't see how conceptually this is difficult to understand. People select links those should be used. If another public address is needed for join info exchange, ask for what address to use, or configure it and write it to a conf somewhere.
And again, that happens. If you select something it will be used! But the pre-selected choice, which is automatically made, will be a result of the gai.conf ordering. Change the pre-selected one to your choice and it will be used...
Do you want to change the pre-selected choice, change gai.conf.
What are links 1 and 2 etc after link 0 used for and how?
Are they not used for corosync?
They are mainly for redundancy:
https://pve.proxmox.com/pve-docs/chapter-pvecm.html#pvecm_redundancy
Do I have to put any of the public ip's on these links, or can them all be private?
Can be all private, the nodes just need to be able to talk to each others all over them with good latency (ideally <2 ms may work up to <10 ms)
Will that interfere with something?
Normally the main corosync link, that is if no priorities set the one with the lowest link ID, e.g., link0, is used. And that one should not be put together with IO related traffic, e.g., ceph private network or NFS traffic, etc. While corosync does not require much bandwidth it has hard requirements on latency, IO traffic is normally of a shape which can quickly interfere with that requirement.
https://pve.proxmox.com/pve-docs/chapter-pvecm.html#pvecm_cluster_network_requirements
So we recommend a physically separate network for the main link, but adding other networks as fall back links - in order of traffic expected on them. The separate one could be even just a 100Mbps switch for small node counts.