Cargo actually works exceedingly well with sharing the target dir between workspaces -- if you're worried about different workspaces trampling on each other, don't be. I've been using a globally set target dir for over a year now and it works seamlessly.
All of the produced artifacts are already tagged (via hash) with the version and feature set of the crate you're compiling.
The one thing I wish for is being able to keep producing the final binary into the local directory rather than my build cache 