I suggest adopting part of cortex-m-rt structure:
Make link.x include memory.x
In this way, PACs and BSPs would have to provide a memory.x linker file that defines the memory layout and regions.
End users would need to do something like RUSTFLAGS="-C link-arg=-Tlink.x when building binaries, regardless of the final target.
Keep using region aliases
I think the current riscv-rt approach is quite versatile and I don't see any advantage in limiting sections to FLASH and RAM.
Use __ to define start and end of sections
I think it is a good idea to follow the same naming convention as in cortex-m-rt (__stext, __etext...).