Okey, so...after discussion with Harkins and some thinking I came up with the following code
Unless I missed something it should retain the benefits of Dependency injection while having much simpler structure, although a bit more typing
$this->pool->database instead of $this->database and for IDE most likely necessary to use @property/@property-read as the pool uses __get() to bridge the objects
however then only $pool property is needed for object and no Factory
again... feedback really welcomed and you're free to use it
Edit: I thought about having more than 1 default and therefore rather some hierarchies, it seems to me overly complicated though. But the class should be extendable so maybe it could be done that way... maybe the independency should have been done in extending class?
Edit 2 (update): now storing only interfaces names, not a whole ReflectionClass class
Edit 3 (update): OMG....it was so simple...now we can make hierarchies

Update: 1.15
Update: 1.25