It's kind of cool, so many things (computers or otherwise) have padding built in.<p>Remember BASIC, the classic 10/20/30 line numbering scheme? Don't want to be caught without room to expand your program.<p>Microprocessors manufacture in extra gates in case they need to fix something.<p>Even in large construction projects you see evidence of mystery tunnels, pipes and other things that enable post-construction changes. Some of the road fly-overs in my area have branch points that are only connected in one direction (since obviously it would be ridiculously hard to retrofit the piers at the intersection 10 years from now to add a road going the other way).
Apparently, hotpatching never really took off:
<a href="http://www.itwalkthru.com/2010/10/hotpatching-great-idea-microsoft-but.html" rel="nofollow">http://www.itwalkthru.com/2010/10/hotpatching-great-idea-mic...</a><p>Not sure if anything has changed in recent years, though.
Raymond mentions MS Detours in this article on patching. I've had great success troubleshooting 3rd party DLLs with Detours interception of function dispatch, specifically Excel XLLs.
If it weren't for the "fastcall" convention using ECX for an actual argument value, they could have used "MOV ECX,EDI" and then the change to a "JMP $-5" would have been possible with a single byte store to the opcode (0x89 -> 0xeb), removing any worries about a two-byte store straddling a cache-line or page boundary.
More articles like this in Raymond's blog, which is full of anecdotes from his time at Microsoft.<p><a href="https://blogs.msdn.microsoft.com/oldnewthing/" rel="nofollow">https://blogs.msdn.microsoft.com/oldnewthing/</a>