Personally, I think there is absolutely no reason why in something like the iMacs, HD and RAM shouldn’t be user replaceable and upgradable
Simple: user-replaceable RAM is too slow. Apples M-series SoCs combine the CPU and GPU and both share the same memory. This has massive performance advantages, especially for GPU-compute tasks. Performance of GPU code is very dependent on memory bandwidth. You cannot have high-bandwidth memory on a user-replaceable module, you have to have the memory chips physically close to the processor. This is the reason there are no user-replaceable RAM modules on GPUs either.
With GPU compute becoming more and more important, I expect the PC world to get rid of user replaceable RAM and GPUs as well in the future.
Simple: user-replaceable RAM is too slow. Apples M-series SoCs combine the CPU and GPU and both share the same memory. This has massive performance advantages, especially for GPU-compute tasks. Performance of GPU code is very dependent on memory bandwidth. You cannot have high-bandwidth memory on a user-replaceable module, you have to have the memory chips physically close to the processor. This is the reason there are no user-replaceable RAM modules on GPUs either.
With GPU compute becoming more and more important, I expect the PC world to get rid of user replaceable RAM and GPUs as well in the future.