It makes perfect sense actually. Its to meet demands and reduce time needed for testing.
No, it doesn't cost them anything actually and they could potentially make more money. For CPUs that has 2 perfect dies, AMD simply mark it as 7950, if not so good, 7900.... If 1 die is very bad, 7700/7600 then. AMD/Intel usually do not rework CPU if it fails test. Imagine they solder jsut 1 die onto the substrate and found it to be bad, the whole CPU is useless... Now, they have 2 dies, if 1 is bad, they can still use it. Reduce wastage.
Of course, having 2 dies instead of 1 on each CPU means that the number of CPUs you can make is potentially halved..... So, it depends on demand. Right now, I believe AMD already know that 7950/7900 has very high demand. 7700/7600 will not have such demand at least till B650 boards are out.