This one pretty much requires a native speaker but I could take a crack at it:

https://ru.wiktionary.org/wiki/%D1%8...83%D1%82%D1%8C
https://ru.wiktionary.org/wiki/%D0%B...B8%D1%82%D1%8C

Here's the two викисловарь pages for the words, notice the few differences, particularly in the second explanations of the meanings
Especially, that the site lists прошептать as an antonym to шепнуть (but synonyms the other way around)

Now, if you imagine the uses of "imperfectiveness" and the uses of "perfectiveness" layed out in two lists like

Imperfective
repeated
ongoing
habitual
unfinished
background-setting
process
etc.

Perfective
completed
one time, singular instance
result
etc.

So, usually it's not very important and you can just use a verb from either group (usually there only exists a pair of verbs, one of each), say, Imperfective, and in doing so technically all the meanings of that group are inherent: говорит by itself partakes of the whole list let's say; it could be ongoing, or maybe it's habitual, generally the distinction doesn't matter, just that it isn't perfective.

But! Things can get pretty complication because what if you wanted to refer to a "completed process that was repeated" versus an event that was absolutely "one-time"?

-- шептать - to whisper (imperfective)


шепнуть - perfective: single time action, short phrase, instance of communication

прошептать - perfective: lengthy process, "for a while", a whole conversation

You could imagine how these would bring to mind slightly different mental images:
шепнул - he whispered something and left
прошептал - he whispered during the whole class
шептал - he was whispering
Of course translating it like this doesn't nearly impart the internal machinery of the difference

So, some verbs break things up even further. You could have multiple perfectives (whether or not they're "the same word" is already a complicated question). In some cases, if the special perfectives also plausibly could have imperfective pairs, an infix is added. Generally speaking, the imperfective unprefixed word is the starting seed. Then, speaking metaphorically because I have no idea if this has any basis in etymological reality, a normal perfective is made as a pair to the basic imperfective, proabably with some inconspicuos prefix like 'по-', or maybe by switching -ать for -ить or -ать for -нуть. Then, say, a specified special perfective is formed, and has a particular emphasis (repeatedness over a lengthy amount of time), probably with a particular prefix meant to impart the meaning (про-, "through", as though the event is a long tunnel with duration or extent). Then finally the special perfective, made off what looks like an imperfective word (remember, it was made by simply adding a prefix to an imperfective), to get its imperfective has added into it an infix, an extra inner syllable like -ыв- .

говорить - сказать
проговаривать - проговорить

Important to remember, the ending -нуть very heavily leans towards being the kind of perfective that is single instance, one time thing, rather than being the kind of perfective that deals with completion, but I won't say that is a universal.

Here are some examples of the tree like structure of word formation I laid out:

https://en.wiktionary.org/wiki/%D0%B...B0%D1%82%D1%8C

https://en.wiktionary.org/wiki/%D0%B1%D0%B8%D1%82%D1%8C

https://en.wiktionary.org/wiki/%D1%8...B8%D1%82%D1%8C (Instead of an infix here it is a stem change)

https://en.wiktionary.org/wiki/%D0%B...B8%D1%82%D1%8C (Here the offspring-imperfectives use an ending change)

In some cases, the descendant words are equivalent to English phrasal verbs (go versus go in), in the case of the question, I guess, a more subtle reason sparked the separate words.