There are two relevant compression methods we can use: BC1/DXT1 and BC3/DXT5. BC1 only stores a 1-bit alpha channel (so essentially no usable alpha channel), while BC3 stores a basically uncompressed alpha channel. The color channels are compressed in the same manner either way. The alpha channel takes roughly as much memory to store as all color channels, that's why BC1 textures are roughly half the size of BC3 textures. A BC3 texture is only a quarter the size of an uncompressed RGBA texture, so the benefits of compression are significant.
Sidenote: BC2 is the bastard child of BC1 and BC3, there are no upsides in using it. It stores a worse alpha channel while using as much space as BC3. I don't know why it exists.
There are more, but newer formats like BC3nm and BC5 do not work with the game.
The compression can cause blocks of 2x2 pixels to become the same color. When storing actual color data (like albedo textures) this is not too big of a deal most of the time, because the compression algorithm was designed with human perception in mind. You normally don't notice these artifacts.
The unit albedo textures just accept the compression artifacts. I suppose the artifacts are even less noticable in the albedo, because it is mostly grey values for most factions. When all three color channels are the same (i.e. you have a grey color) then there are no to minimal artifacts.
albedo textures use BC1 compression, which makes sense, because we don't need the alpha channel.
But when we store non-color data like normal maps or the specteam textures, compression is much more noticable. To circumvent this you have to get creative.
Specteam textures use BC3 and put the team color in the alpha channel, because that one is most noticeable in the game and doesn't suffer from compression artifacts. The artifacts are only in the color channels as explained above. If only one of the color channels changes values at a certain location, then compression artifacts are minimal. The blue channel is mostly black for most units. Cybran units originally didn't use the red channel for the most part, so the green one looked mostly intact, even with compression.
Unit normal textures use a different trick: They only store two channels in the texture, so to minimize compression artifacts they are stored as alpha (x) + greyscale values in the color channels (y) in a BC3-compressed texture. The discarded z value can be recomputed in the shader, because a normal vector has a length of 1 and if you know that and the first two components you can compute the third.
Still though, the albedos and many of the specteam textures have artifacts and they look ugly when you zoom in on the units. Wouldn't it be better to store these textures uncompressed? Not really. It makes sense to tolerate the compression artifacts, because you can shrink the the memory footprint of the texture to about one quarter when using compression. So by accepting artifacts you can double the texture resolution and then the artifacts have the size that a pixel in the uncompressed texture would have anyway, all with the same memory usage.