Depends on your Cloudflare configuration. By default Cloudflare will only cache static assets, like images and JavaScript, but not the actual page HTML (which is what Surge caches), so with a default configuration it’s certainly beneficial to use both.
However, Cloudflare also has a way to cache HTML pages as well on their paid plans. Now this could sound slightly redundant, and the gains may be minimal, but it certainly won’t hurt. Multi-tiered caching configurations tend to work really well, provided there is proper invalidation in place. Surge will invalidate its own cache when needed, but for Cloudfront you’ll have to find something separate, their own plugin perhaps.
Hope that helps!