Short answer: because Karna and Indra both acknowledged that it was an exchange and not daan.
When Indra comes to ask for the kavacha kundala, this is what happens:
Karna is awaiting Indra’s arrival after receiving Surya’s cautionary advice earlier.
Indra arrives in the guise of a brahmana and Karna welcomes him and offers various types of daan to him.
The brahmana refuses and asks for the kavacha kundala. At this point, Karna does not realize this is Indra. He refuses the brahmana the kavacha kundala and offers other things instead.
The Brahmana insists and Karna says that kavacha kundala are made of amrita, they make him unslayable (Avadhya) so he will NOT part with them.
The Brahmana continues to insist. By now Karna has realised who this is. He now reveals that he knows this is Indra. He says that it is Indra who should give him something, considering he is a God.
Karna reiterates that the kavacha kundala make him unslayable so he will not give them UNLESS Indra gives him something in return. Basically, he says he will exchange them for something from Indra but not give them as daan.
Indra says that he can ask for anything but the Vajra. A very happy Karna asks for the Amogh shakti/ Vasavi shakti.
Indra clarifies now that this is an exchange between them.
Finally, Karna TAKES the vasavi shakti first and THEN cust away his kavacha kundala, meaning he gets his quoted price first.
There is no daan happening here. It is a well negotiated exchange.
Excerpts from Geeta press:
Refusal 1: #Karna doesn't realise this is Indra at this point. Basically, he refuses daan to a brahmana
Refusal 2: Karna knows the kavach- Kundal makes him immortal sort of and that's why he doesn't want to give it away.
Refusal 3: Now Karna reveals he knows this is Indra and he refuses to give the kavacha kundala
Now Indra says that except Vajra he can ask for anything- thus quoting the price he will pay
Indra, knowing well how contracts work, makes it very clear that this is an EXCHANGE with mutual benefits.
After taking the vasavi shakti, Karna gives his Kavacha Kundala. This is no daan so meaningless to talk about generosity.