The key will be required because when you register and rewrite the Contact, you have to handle the R-URI for inbound new requests (INVITES for instance) too. So a REGISTER needs to be handled pretty much the same way as a dialog-forming request such as an INVITE.
I'm currently looking into some ways to handle this generically.