On our server (and I've seen many others like this), we have the following dir structure:
/var/www/lib/ << frameworks go here
/var/www/domain.com/private/ << app goes here
/var/www/domain.com/public/ << frontend files (simple media files, etc)
While sapphire/silverstripe wants you to install the entire package to:
/var/www/domain.com/public/
It should instead at least give the ability to separate out the folder locations.
I've grepped through the code, and there are so many locations hard-coded to expect the sapphire/ path, that it would be an extreme annoyance to replace all occurrences. Yes, it can be done with a mass find/replace (ideally using a constant), but in this day, to essentially attempt to force all files into the document root (when they aren't needed there), is a bit excessive.
I was actually evaluating Sapphire as an alternative to Yii/CakePHP for a large project, but this concern alone is enough to make me stay with Yii and similar alternatives.
Thanks