There are slight differences. Outgoing connections are trusted more.
The idea is that if you connect to a node, it is probably trustworthy. Incoming connections could all be from the same person, using lots of different IPs, trying to attack you.
Address messages are only forwarded if they come from a node that you connected to. I think addresses that come from nodes that connect to you are ignored (or maybe lower priority), when deciding who to connect to.
Your node reserves 8 slots to try to make sure it has 8 outbound connections.