Segmentation can be a useful architecture if it is combined with capability-based addressing. By replacing LDT in x86 with c-list (capability list), the system will become a capability-based segmentation architecture. In this architecture, all processes run on a single address space and c-list will create a protection domain for each process so that processes will be protected from each other on a single address space.
