in case it's not clear why this is required, some of the things the storage engine handles are:
image transformations, caching, automatic cache-busting, multiple protocols, metadata management, postgres compatibility, multipart uploads, compatibility across storage backends, etc