Signing the public key is safe.
The general assumption is that the adversary is allowed to ask any message that he knows to be signed, and that operation must not leak information about the private key (or otherwise generate a signature for a message that was not signed by the legitimate signer).
In this model, the adversary knows the public key (it's assumed to be public, after all), and he can submit that as something to be signed. Hence, if that signature leaks anything untoward, that shows that the signature algorithm is broken.
In practice, it can be seen not to matter; for any signature operation I've seen, you first hash the message to be signed (and perform the signature operation on the hash); this hashing operation would muck up any relation between the message and the public key, even if that were any issue.