Some updates require a restart of the computer, some don't. The reason for a restart can differ - sometimes it's needed to complete the update/installation process, other times it may be simply to ensure that the OS and/or software can utilise the update.
In terms of installing updates in the background, this isn't a problem in itself unless its updating a component/software that's currently running, in which case you need to either close the relevant software or effect a restart for the OS to release the component so it can be updated.
Is what you're trying to do harmful? In most cases not, but in some cases it could be, depending on what the update is doing.
For critical updates, the better approach would be to:
- auto install updates outside of particular hours or
- force the update/restart upon users.
With the second option, it's common to have a script that prompts the user that an update is going to be installed and the computer will restart in xx minutes - where xx provides plenty of notice (e.g. 15 mins, 30 mins, etc) and gives them enough time to plan around the restart (such as saving work, grabbing a coffee, etc).
However, what I've done is set this up so the script provides the user an option to 'Restart now' so they have the flexibility to just get it over and done with rather than waiting for xx minutes to pass. The script does not provide a 'postpone' or 'remind me later' option for any critical updates. It is just going to run and the user has been forewarned.