Summary: Offline development environment is crucial to have development going undisrupted all the time and we can achieve this by easy effort.
When we rely on external services like these whenever any of them goes offline or if our internet goes offline we can't develop and lose time. I think this is the worst kind of losing time which can be avoided easily if given some small effort.
I realised if I can minimise the single-point-of-failure dependencies on external services and provide a fail-over for them on development environment in I avoid times where the development environment doesn't get up because in dev environments external services tend to be less stable. Many normal stuff can make an external service inaccessible like IP addresses may change, authentication methods or credentials may change, maintenance can goes on regularly...
In a perfect environment where maintenance never takes down services, where credentials or some interfaces change with a notice period, where IP address change (both client and server) is notified early and internet always stays on external services won't be single point of failure but as we know nothing is perfect when it comes to IT, so better to be on the safe side.
Some things I did to achieve this is on dev environment: