Why not send the identity in the encrypted message? I've recently started reading the book "Applied Cryptography" written by Bruce Schneier.

Quite a few times I stumbled across protocols who send the identity outside of the encrypted message (see step 4).

Is there a certain reason to do so? What does speak against sending the identity within the encrypted message?
You can of course add a trusted path requirement to Trent (the trusted key distribution center) on the top of the given protocol. This is however not a requirement for the scheme itself.

Trent, as trusted third party serving multiple users, of course needs to know who to communicate to. So the identity cannot be encrypted with the public key of Alice or Bob.

As you can see the information between Alice and Bob is encrypted. This is no problem as both just use their own key to decrypt the messages between them.



That all said, there seem to be multiple attacks on the scheme - this seems to be one of them. The problem of not establishing a trusted path to the KDC could be a big improvement on the protocol. Just to remind you: only use this protocol for study, not for real life implementations. 

Please understand that these protocols are building blocks for creating secure systems. You need to understand exactly what kind of security is provided by the scheme to use it for building a secure system. Anonimity of Alice and Bob when talking to the KDC is clearly not part of the security provided by this protocol.