The PS4's file system (Orbis OS, based on FreeBSD, using the ZFS file system) - and the PS3's file system before it, which was pretty much the same - updates existing files by:
* Download update file into free space
* Write temporary version of original file in free space
* Apply update to temporary version of file
* Verify new file
* Write new file over original file
With game updates, the original file is the entire game install. Sometimes, it doesn't need to take the whole game - sometimes it can get away with only taking a 4GB block (in which case it will need 8GB + reserved space) - but typically anything that includes content and bug fixes will need to take the whole game. Ever wonder why the "Copying" takes longer than the download? It's because the PS4 is writing the entire game file to HDD twice.
In addition FreeBSD reserves 8% of any HDD by default. So that means that if you have a 500GB PS4 and are getting lucky with a narrow-focus update requiring only a 4GB block, you'll need 48GB of free space to apply an update. Or rather 46GB, as FreeBSD reports disk space differently.
On the bright side, it also means that the disk never gets fragmented, so there's that.