My system is equipped with other than 5. These information is not answer, but it may be useful to you.
1. My system uses Jquery Lazyload plugin. The details of the implementation are here. I applied Lazyload to avatar images regardless of the type of request (Page request / Ajax request). As a result, many problems occurred. In order to avoid many problems, it is important not to apply lazyload to ajax request.
2. I am compressing CSS and JS with this library. However, not all CSS and JS files can be compressed with this library. Depending on the coding of the files (Especially JS file) to be compressed, it may not work correctly. For example, ckeditor.js. In other words, you need to be able to specify uncompressed files in the Admin panel. By the way, currently only CSS files are compressed on my site (Look at HTML sources with debugging tools).
3. In my system, I optimize the header of the image request mainly and effectively use the browser's cache.
4. Currentlt, tab codes is removed in my system. This can be achieved with overriding output_array() and output_raw() theme functions.
5. I did not apply AMP. Because AMP does not work effectively on community systems like QA site. This is noted in the AMP documentation.