The problem is the installer needs to work even if SilverStripe doesn't because of some configuration issue (like the manifest can't write to temp) so that the user can be informed of that issue. Installer could be split into two steps thought, the first to check those configuration issues, the second to configure the database.