That doesn't really explain why an updated to, say, .NET forces a restart. Far too many updates force restarts when it seems they shouldn't require it. It's not just the main OS updates.
I'm guessing applications will be running with the old libraries loaded and developers should be able to count on this one-version-only situation (e.g. ABI between processes). Forcing a restart is just the simple but crude way of ensuring that no applications are using any system files (.NET is part of the OS, up until .NET Core).
Most of the time, you can just ignore the restart option. It seems to be the windows philosophy to just throw a restart in for good measure.