It comes down to the use case and it's helpful to think of situations where PULL would be better and compare that to situations where PUSH would be. This might not be a perfect answer but I've used both in the past for different reasons and they were as follows.
Before getting into examples lets first say the following:
PUSH CDN: When using a PUSH CDN you as the administrator are responsible for pushing the actual content to the CDN. The CDN will not auto populate a cache on it's own, you must provide it with the content to serve (This can still be automated but its still YOU sending content to the CDN).
- Each of your CDN POPs will have the content, even during the first load
- Less server overhead of maintaining a cache. Since you update the content in a PUSH zone the CDN will never have to check the origin server if there is a new version of the file to cache.
PULL CDN: When using a PULL CDN, the CDN is responsible for creating the cache of files to store. It essentially acts as a reverse proxy for the static URL you provide to the CDN and then caches the files which meet the caching criteria.
- Less overhead for the admin. You dont need to worry about sending content to the CDN.
Now a use case example for each:
PULL CDN: Image Host
Your users are constantly uploading new images, these images get a decent amount of views then eventually die off and receive very little views. With new content coming in constantly its beneficial for the CDN to do all the work even if that means that the visitors who are accessing the page for the first time or those trying to open a web page after the elements and files in the CDN has expired may experience slightly slower loading time as the CDN gets the content from the origin server.
PUSH CDN: Software Repository
When you publish the latest version of your software you expect a sudden influx of traffic from all your users downloading the update, this prompts you to use a CDN. You want to make sure that your software is on all of your CDN POPs before publicly releasing it so you PUSH the your content to the CDN. You also keep all of your previous versions accessible for download, all of these files will never be updated. There is no need for the CDN to contact the origin server to check the status of the files currently being cached.
Why are CDN push zones more ideal for larger files?
As I've tried to show above the use case is a larger determining factor when it comes to what type of CDN you want to use and not necessarily the size of the files you will be caching. Whether using Push zones or Pull zones after the CDN cache has been populated by the files you wish to serve the end result will be the same for your users. Push zones are more ideal for larger files simply because of the less overhead sent to your origin server.
Opinion: I also just believe that using push zones simply align more to your end goals if you are specifically needing a CDN to host larger files.