What semantic notions underlie 心 ('heart') with 惑 ('to confuse')?
I think we should start off from the more basic principles in language - hopefully this will give a better idea of how phono-semantic compounds work.



Remember that words have already long existed before writing was invented. What happens, then, if we want to write something down that hasn't been written before?

Now, Chinese characters, representing morphemes or words, have both meaning and sound: if we want to write down a meaning word confuse pronounced as† /*ɡʷɯːɡ/ with no existing character representation, we can

† Pronounced as is a description for convenience only - reconstructions are generally for the purpose of demonstrating historical phonological features and rules, not a guide to how words were originally pronounced.


Write it with a character which hints at the sound of the word using an existing character which sounds similar, e.g. 「或」;
Draw a picture which indicates the meaning confuse.


It is very clear that (2) cannot be employed too often in a practical manner across all the words in a language - so ancient scribes extensively employed method (1) to represent the language.

But hold on, 「或」 already represents a word meaning region or area! How shall we distinguish the word meaning confuse from region/area?

How about reminding the reader that the word referred to is an emotion, by adding the character for heart/mind/emotion, 「心」?

So now we get 「惑」, which is composed of a bunch of hints reminding the reader of a word that sounds like 「或」 (/*ɡʷɯːɡ/) and is an emotion 「心」.



To reiterate, the word meaning confuse pronounced as /*ɡʷɯːɡ/ already exists! In English, if I ask you for a word sounding like eight and is a kind of emotion, I expect you to know, with fair confidence, that I'm talking about the word hate.

I should only need to hint to you that the word is a kind of emotion, instead of needing to draw angry faces everywhere, and you shouldn't need to come back to me and tell me that there are a million different kinds of emotions; how does "emotion" reduce to the meaning "hate"?, because I've already hinted to you that the word sounds like eight.



How does this generalise to other characters? To use @TangHo's examples, we can still talk about emotions, and understand that


We know that there is a word sounding like 「奴」 which means angry. Let's remind ourselves of this word by adding 「心」, the hint for emotion, to get 「怒」.
We know that there is a word sounding like 「夗」 which means resentment. Let's remind ourselves of this word by adding 「心」, the hint for emotion, to get 「怨」.
We know that there is a word sounding like 「巩」 which means fear. Let's remind ourselves of this word by adding 「心」, the hint for emotion, to get 「恐」.
We know that there is a word sounding like 「己」 which means to envy. Let's remind ourselves of this word by adding 「心」, the hint for emotion, to get 「忌」.


In all cases, 「心」 does not mean anything other than a hint for emotion, and in all cases, the writer expects you to know what the word sounds like already. Characters do not exist in a vacuum; they refer to words which you are already expected to know.