DCT uses a step while calculation called quantization. This creates a quantiztion error. Which cannot be recovered later. So, if you are using DCT and then inserting your payload, there will be some error due to the quantization.
There are three methods of data hiding. In cryptography, we can openly announce that we added some data and the interceptor don't have key to open. In watermarking also, we can announce the same, but interceptor can attack te file to remove the data. We need to embed small data for identification. However, in steganography, we cannot announce to anybody, because if anyone is able to find the presence of data in image, they can remove the file. So our aim will not be achieved. So, in steganography, We must be able to exploit HVS (Human Visual System). This we can achieve using frequency domain because our eyes cannot detect high frequencies. So, either you can go for DCT or DWT. if you are using DCT, don't worry about lossy compression. You just have to aim to embed the data in low frequencies which you can decide that how much compression your file can handle. Check out papers in my profile on watermarking. You can check the tables mentioning the compression attacks.