нет были же изначальные дизайны обусловленные железом того времени, не было тредов когда-то, просто потому что такое было железо, да и есть вещи которые просто из С выросли и потом вообще поменялись (type punning), появились новые семантики (move) и эти изначальные дизайны не какие-то незыблемые вещи.
Память с «того времени» почти не изменилась, только хуже стало - потому что, по факту, то, что сейчас считают «настольным компьютером» в то время называли бы NUMA - кластером. Несколько процессоров, каждый со своей памятью обращаются к общей памяти (больше чем собственная у любого из них и чуть медленнее) по каналам связи, чуть медленные чем интерлинк, но быстрее чем связь между двумя из узлов кластера (CPU и GPU)... Компилятору до этого всего в общем случае дела нет - если производительность сильно проседает на промахах в кэше - то это проблема программиста (который пишет как удобней). Любой язык это компромис между скоростью и удобством и C++ не исключение. Есть мнение, что сначала надо учить самое простое, а все эти кэши и ядра - потом, но у меня есть подозрение, что это самое «потом» никогда не наступит (время учить что-то сложное упущено - как и мотивация)