Presumably adding precise stack maps and object maps would be the first step of adding IMMIX. I mean it's the compiler that chooses where to place things in the heap and the stack, so it already knows where they are.
https://dlang.org/spec/garbage.html#obj_pinning_and_gc
There's also been some work on a precise GC for D:
https://forum.dlang.org/post/hdwwkzqswwtffjehenjt@forum.dlan...
Not generally, but you can take the address of anything and shove it into a union or pass it off to C code that stores it somewhere. Because you can, it would be very dangerous to move objects around because of that.