Only way to improve that is to make programming languages push either data locality or dataflow like designs, which may mean giving up or reimagining OO.
Error rates (yield) are a serious problem, but if your design is uniform enough you can very well get away with just disabling bits. There's also a less obvious problem with on-chip variation (OCV) - some physical properties have a gradient across the chip. At runtime, there's a temperature gradient as well.