Several machines adopted a segmented style of addressing as early as 1956 when the Burroughs 5500 sprang forth. In these machines the address came in two parts, one to specify a segment and another to specify a word within that segment. The segment ID was nominally found in the instruction stream but the offset was found in a register. In the 5500 the segment ID would identify a base register whose contents were inaccessible to the program but which pointed at data that was accessible to the program. The base register included a limit and a read-only bit. The OS might set the limit to 0 when the segment was on drum instead of core. This machine was perhaps the first with anything like virtual memory and demand paging. The whole segment was the unit of swapping. Later versions of the Burroughs machines added paging as well. I think that access to memory was a true capability design. I think that the OS did not bother to initialize new capability segments for the plan was that only code compiled by the Burroughs compilers was allowed. I am uncertain of some of these details.
Mechanisms to invoke programs in other spaces were not capability based.