Of course "right tool for the job" and all that.
Jpeg compresses well on disk, but is lossy, expands to raw in memory and doesn't support alpha channels.
PNG compresses ok-ish, is lossless and has alpha channels (and things like deep colour modes), but also raw in memory.
DDS can store ST3C style block compressed formats (the kind that stay compressed on the GPU), voxels and 6 face cube maps, plus less common formats (like RGBA4444).
GIF is paletted (stores pixels as an index into a palette of up to 256 colours, instead of as colours directly) and supports animation.
EXR for high dynamic range images.
Block compressed textures use RGB565 (16 bit colour) so can look crappy, depending on the texture. (Technically for most of the BC formats each 4x4 block is paletted, with a palette of 2 user specified RGB565 colours and 2 interpolated RGB888 colours between the user specified ones). Godot converts textures into block compressed format internally when you set a texture to VRAM compression.
From the Godot docs, the actual types stored in an exported project are going to be raw, webp, png or st3c/pvrtc. If you put a jpg in a project, and set it to lossy compressed mode in the importer, it will be stored as a webp.
I used to have my own format that was 192 bit colour (double precision float per channel) in a tiled format for handling massive images bigger than memory. Yeah, overkill for pre-2000 rendering, but it was fun. π