Magento 2 stores files on disk in the /media dir, but this makes multi-server setups more complex as this dir needs to be shared by all machines.
At the same time, cloud storage is very flexible and scalable (no more running out of disk space for example).
By implementing Gaufrette, a well-known file system abstraction layer from the Symfony world, we can put our media files anywhere we like, including S3, Google Cloud, FTP and countless more places.
And should a developer ever need more than this, a custom file system can be developed easily too.