One question though, considering in the workspace, docx-wasm pulls in wasm-bindgen on its own... Why is this working? Where is cargo being told that it doesn't need to compile docx-wasm?
you are compiling in your root workspace. workspace is a local configuration, dependencies can't have their own workspaces. it is crates that get published, not the workspace. the fact that repo is a virtual workspace and the source code for a paritular crate resides inside a workspace, it is the configuration of the crate's developer. when they are published to a registry such as z"crate.io", each crate is published individually, and the local path dependencies are verified and converted during an normalization process before upload.
no, there's no docx-core crate, the crate name is docs-rs, check the Cargo.toml file:
when the crate get published, cargo just packs the crate files into an archive file and upload it to the registry (default registry is crates.io), the local directory name or the repository url (or home page url, for that matter) can be arbitrary value, and have nothing to do with the crate name, they are just meta data for the crate.
well, since the docx-wasm crate is not published to crates.io, you'd better consult the author about the usage. but I guess most likely you are supposed use the git repo directly as your dependency instead of pull it from crates.io: