This is not entirely true, it depends on the client. qBittorrent for example lets you change the listen port and the port of the internal retracker (which is useless in Germany, anyway). The default tracker port of softwares like OpenTracker is indeed 6969, but you will find the majority of HTTP trackers in the wild all listening on 80. It wouldn't matter, anyway, because this is an outbound connection for which a port doesn't need to be open explicitly.
What I read between the lines a bit is that you are used to EMule which inevitably needed its fixed ports open to work. With BitTorrent you can use any port.
This is not entirely right. DHT does not do anything with your connection. In simple, it's there to find peers in a swarm who have a certain file and exchange info about them. If your client is found via DHT, the ones who wanted to find you for example get info about your IP and port so that they can connect (= direct, incoming connection).
Can't speak for any of the clients.
That's an interesting thing to look up. Maybe some clients connect to peers themselves and ask if they need help? qBittorrent doesn't for sure. But from a programmer's perspective working on a more or less commercial BT client which may follow the standard but implements some features of its own on top, I'd say it's not that far fetched. Vuze is such a thing. This applies to when you're a seed.
If you're a peer, you are making the connections. This might be the reason why you can download despite the communication port being closed.