First of all, sorry for my very poor, poor english.
References to read this answer:
Indirect Object: (OI) (Complemento Indirecto)
Direct Object: (OD) (Complemento Directo)
I've a little bad news for you. For a brief resume I will tell you that OI are never expected. And for the same reason, I will told you that you are in a very common mistake.
I'll do a very little explanation of some points and then I will tell you why.
- An OI always requires an OD. But an OD doesn't require an OI. If you have some syntagma that you think is an OI but is required, is an OD or something like (Complemento de Interés). Maybe this is the rule that you remember and you are on a confusion. You can find examples where OI doesn't require an OD, but is a lie, because you must say it con the context :D It's a trick, a common trick to proof a student by the way, lol.
- OI are always optional. You can don't use it. Of course, you are saying the half of your idea, or less information, but is not grammar-required syntagma.
- If you use it, you can replace it by the pronoun.
- By logic, if OI is not required by any grammar syntagma, the pronoun of an OI, neither.
- In oral language is very common repeat something and it's correct. For example, the "le" is "ella".
- There can't be two differentes OI attached to the same verb. (Of course, if you don't want use an multiple nucleous OI or two different OI for two different OD. This rule is relative to: you can't put an OI without an OD)
So I'll explain you all the above points:
Let's do it with your example, but change the verb to one that not requires an OD for clarification (it's more easy to explain, but the rule also works for a "verbo transitivo":
Le compré algo.
(I buy her something). It's ok.
Compré algo.
(I buy something). Yeah, I know, you are not saying to who, but... is a wrong sentence? No.
Compré.
(I buy) Sure, fine. You speak like Tarzan, but it's ok, you can say it. "buy" in spanish is not a real-real verb that requires an OD like "tener" (have). (There are some discussions about this but is not respective to your doubt so... if you don't like the verb "compré" you can use anyone you want.)
Is OD and OI required? No.
But let's try with the last combination:
Compré a ella.
(you will check soon what it's wrong with this, but please follow the line)
If you don't say the OD, the OI automatically converts itself to a OD. Because all OI needs an OD. You can replace the sentence by:
La compré.
But saying "Compré a ella". "La" is "ella" and -oh my god-, "la" is not "le", is an OD case pronoun! That's the reason that you never say:
"Le compré" or "Compré a ella". It's sound bad.
The real sentence for this is:
"Compré para ella"
but it's sound bad again. And is not a correct sentence.
This happens because the verb needs an OD? No.
This happens because the OI NEEDS an OD.
This is the rule. Check it with any verb.
People say it? Sure, people can say anything. But is not correct.
In any case, if you say "La compré" I must tell you that you 're in favor of slavery lol. You can't (or you don't must) buy people. You change radically by grammar the complete meaning of the sentence. This method is very funny and practical for kids.
Let's try it with passive voice:
Algo fue comprado por mí para ella.
"Por mí" is the old subject, "algo" is the new subject, the old OD. OI, is OI. As usual.
THIS IS THE BEST WAY TO PROOF AN OD and an OI
Only for oral reasons, we always repeat the OI but and if you don't repeat it, it's sound bad, but is fine. You can write it. But is has a more academic way to say it.
Compré algo a/para ella muy hermoso.
It's just fine. Because you say the OD.
BUT... (and HERE is the answer for your question)
Try replace the OI:
Le compré algo muy hermoso. (OK!)
Try replace the OD:
Lo compré para ella. (OK!)
Try replacing the both:
Le lo compré para ella. (BAD!)
Because in spanish you can't replace both without using the reflexive. The correct replacement for this is:
Se lo compré para ella (OK!)
"Se" is the "le".
This happens with pronouns. Because IN ORAL it's sound bad too many pronouns that you really don't know the real meaning ("ella", "algo").
And for you, it's sound bad "dije a ella que.." because...
(music for expectative) :D
"ella" is a pronoun!
Try with:
Dije a María que... (it's sound great!!!)
Maybe it's sound bad, but it's ok.
For finish this answer (I hope I could clarify it and don't mess you more with the topic),
this happens because any non-tonic pronouns is the replacement of declination case on latin. In latin this never can happens because you say what function (OI or OD) is working on the sentence with the word itself. But... here is the joke.. in latin (common latin, not academic latin) for A LOT of declinations, OD and OI are the same, and a latin speaker must trying to "read" what is the sense of the sentence... by the context :D
So... what?
The answer is:
OI are never expected.
You can say the pronoun, the OI complete, or both.
But if you say the OI, you must say the OD.
By the way, take care of "Complemento de Interés". It's sounds like an OI, can be processed as an OI, but is not an OI.