This is intentional, and is a major feature: complete-prev isn't just returning matches, it also allows using complete-more to extend the completion.
For example suppose there are three "hello"s:
hello world
hello goodbye
hello to you
Now suppose you add a line and type "he" on the new line:
hello world
hello goodbye
hello forever
he
Now use complete-prev once to get "hello", but if you then used complete-more you'd get "hello forever".
Or use complete-prev twice to get "hello" again, but if you then used complete-more you'd get "hello goodbye".
Or use complete-prev thrice to get "hello" still, but if you then used complete-more you'd get "hello world".
If complete-prev returned only unique values, it would remove a major feature. At least it's major for me, I use it all the time, many times per day, it's a huge typing saver and even helps avoid typing mistakes.