While the kernel does manage memory addresses for applications, the actual memory size and what's written there is controlled by the application in question. The kernel basically allocates the memory buffer, or heap, as requested by the application and the application controls what's written in this buffer. If the size of data being written is greater than the buffer allocation size, then the buffer overflow will take place. And that's not a good thing. The intentionally triggered buffer overflow can crash the system in good case. In bad case, the buffer overflow is used to execute arbitrary code that compromises the system.
Most applications are developed in C/C++ language, that has no built-in routine/function to check/restrict memory buffer boundaries. The developers are suppose to write their own routine that performs this function, but that does not happen all the times.
The Windows SDK, that includes C/C++, has built-in routines for application developers to enforce the memory buffer boundaries, so they don't need to write their own. What the article is complaining about is the difference between intsafe.h (SDK 7 for W7) and strsafe.h (SDK 8 for W8) libraries. Comparing these libraries is pretty much irrelevant, as far as the status of the security patch is concerned for the indicated OS.
As more and more buffer overflow technology utilized by hackers become known, the more "safe functions" will be added to the SDK libraries. Some of them will be forward looking only, while others may make it to the previous version to SDK libraries. This could be a decision based on compatibility and not an intent of abandoning previous OS versions, that are still supported.
The programming error resulting in buffer overflows is the main reason why I use MS EMET 5.0. EMET protects the OS, applications, and browsers against 13 known buffer overflow technologies. Will it protect against all of them? Well, no... There's nothing that programmatically can protect your system against a programmer error...
