Is it possible to publish crates with "path" specified?

Have you tried multiple locations?

[dependencies]
# Uses `my-bitflags` when used locally, and uses
# version 1.0 from crates.io when published.
bitflags = { path = "my-bitflags", version = "1.0" }

This will cause your local project (on your computer) to use bitflags from your local directory my-bitflags but you can still publish your package to crates.io. If someone were to download your package, it would be build with the bitflags v1.0 crate published on crates.io.