The reason you expect this is because Windows has a file lock behaviour that won’t let you delete a file when it’s in use, in Linux this limitation doesn’t exist.
Raymond Chan, arguably one of the best software engineers in the world, and a Microsoft employee, has repeatedly lamented the near malware like work arounds developers have had to invent to overcome this limitation with uninstallers.
Think about uninstalling a game. You need to run “uninstall.exe” but you don’t want uninstall.exe to exist after you’ve run it… but you can’t delete a file that’s in use. Uninstall.exe will always be in use when you run it….so how do you make it remove itself?
Schedule a task? Side load a process? Inject a process? Many ways…. But most look like malware.