When I've done it in the past the reason was that the "downloader" was more like a bootstrapper to get the app on the machine with different logic if the app was already installed/not installed, and to migrate between versions if necessary - without corrupting the existing installation, if it exists.
Download & Install is filled with points of failure and have few ways of performing the modifications atomically. Its better to have this correct than have nice information displays. But this depends heavily on what the app structure looks like.
> Especially when the custom downloader doesn't suppoert resuming interrupted downloads, display remaining time, current download speed or how much data is being downloaded
These things are not always easy, are usually lies, and add very little value to the application. Be happy they haven't hyper optimized first time installation or new user onboarding, since you usually only do it once.