(1), I would hope so. If not, that's a bug.
(2), hadrian supports --build-root=, such that you can have different build product trees based from one source. One of the nice features of hadrian is, that it finally is able to separate build and source directories, there are still the inplace files, which I believe should go. Yet, anything under the --build-root, which defaults to _build, should be hermetic in there. Whether or not you can just *move* those directories around is a bit complicated, primarily because there are facilities in Cabal (the Paths module), as well as potentially use of non ${pkgroot} prefixed package config files, that hardcode paths. Again the Paths module from Cabal should just be removed at some point. And missing ${pkgroot} values could be fixed. My guess is, that we've done quite a lot of making it relocatable, so just try to move it somewhere else and see if things break when calling it somewhere else, they might, but if they do, it's a bug.