Core will continue to do node discovery periodically while it's running to see if other nodes have longer chains and favours the ones that do have the longest chains and lowest ping/latency.
Nodes send a list of nodes they've connected to to other nodes to enable all nodes to do their own peer discovery (up to 1000 addresses for nodes can be sent to others but a much lower number will actually be used as you'll connect to many nodes from that list and get their peer discovery lists too).
Ok, so basically after a full sync, core ignore if a connection is inbound and outbound... when it receive a new block "alert" it gets the block as fast as it can, correct?
I'm asking this because only fetching new blocks from outbound nodes would greatly impact the speed of a fast propagation (let's say that I have the usual 10 outbound + 90 inbound, there is higher probability that one of the 90 will be faster to give a new block than the first 10).