1 – No, Gulp is focused on preparing front-end assets like CSS and JS. It doesn’t really have anything to do with PHP. For PHP, you can instead set up your IDE to lint your files, and you can also set up a Github action to run PHPCS to check against coding standards.
2 – It just depends on your workflow and your needs. Typically as long as you’re prepping CSS and JS output that is enough for many sites.
3 – I haven’t seen this done. There are WP plugins that take care of serving the correct image format depending on browser; you might want to look into those instead.
4 – No, PHP isn’t automatically aware of files and wouldn’t automatically know where you want them enqueued. You’ll need to manually enqueue them where appropriate. Best practice is to split large files and only enqueue where needed – for example, perhaps on Posts you have certain JS functionality, and for a certain Page Template you have extra CSS. Just enqueue in those locations rather than sitewide.
5 – Yes, you need some way to run a final build and put the built files onto the server. You could use tools like Github Actions or CircleCI that take the files you’ve committed and run them through a Gulp build for final output. Or you could be committing your final built files into your repo and just upload them directly.