Do we know yet any ways to get "pointers cannot dangle and you don't need a GC and you don't need Rust-style borrow checking" other than region-based memory management (MLton, Cyclone)?
It's hard to say, because some folks will jump up and down and say "reference counting is GC!", and then some folks could just as justifiably say "regions are GC!"
Some folks will jump up and down and say "variable sized allocation is sloppy!"
GC is a spectrum on which reference counting lives. Is there an arch that supports bidirectional references?