Just to expand Christian's answer little bit.
Our decision is deliberate. We have decided to keep onion routing out of CADET for various reasons:
- CADET is a connectivity service. We try to keep different functions in separate services, thus CADET only takes care of connectivity. Encryption comes in because we put security first and we try to do everything in GNUnet is as secure (encrypted) as possible.
- Anonimity doesn't come for free. Anonimity requires a minimum of three intermediate nodes, which increases the traffic in the network and the latency in the connection. If CADET can connect two peers directly (zero hops, in a non-restriced scenario), it tries does so.
- Anonimity is hard to get perfect. The three intermediate hops is just a bare minimum. You also have to select those peers "correctly", worry about timing correlation, and many other details.
- Conflicting requirements: Peer selection is directly oppsed to CADET's goals. For CADET you want to have the least possible hops, on the "directest" path between you and your target. For anonimity you need to have them as spread as possible (ideally the global network) and with a high minimum number of them.
- If you need anonimity, you can always put it on top of other layers, we are not rejecting it. If you replace IP by GNUnet, you can still run a Tor-like system (or maybe just Tor) pretty much unmodified. We do plan and have in our TO-DO list to build an anonimity layer, so the applications that need it can have it, it's just that we don't have the manpower to do it right now. We do accept code contributions, tho ;)