I'm aware of [lib.name], and as you note it's confusing to users. For example, this is permitted in the current implementation:
[package]
name = "fa47a84c-a7a9-4cc2-bdd4-e8aedf4f96b0"
[lib]
name = "xml"
And such a package could be depended on like this:
[dependencies]
xml = { package = "fa47a84c-a7a9-4cc2-bdd4-e8aedf4f96b0", version = "1.0.15" }
I've considered doing that, but it feels kinda slightly hostile, so I wanted to see if there was some other way to be able to publish my packages without completely going against current best practices.