No, there’s no need to obey that indexing for the prefix at the moment - it’s just in preparation for the replies changes to come in the near future. It is not a bug per se, just part of the API response that was enabled at the same time as the attachment update. Apologies for the confusion there.
An initial mention which is not a reply will be included inside the Tweet text. This is correct and the expected / intended behaviour.
In the future, if you were to create a reply to that Tweet using the auto_populate_reply_metadata parameter, then all of the @mentions would be looked up by the server, “moved” to the metadata and indexed out of the display area. The original / first @mention is implied by the Tweet that is first in the replies chain and cannot be removed.
I’ll see if I can come up with a way of documenting this more clearly, as I realise it’s a bit brain-bending when you can’t yet experiment and see the API responses for yourself! 
So let’s try this:
First/new Tweet (from @evilpiper)
@andypiper how was the latest Dr Who episode?
All of that counts as text in the Tweet
Reply Tweet (from @andypiper)
in_reply_to_status_id + auto_populate_reply_metadata + tweet_mode=extended
I loved it, especially when the Sontarans destroyed all the Rutans.
Note that I don’t need to include @evilpiper in the body of the reply on the API call, but the replied-to username will appear in the full_text of the Tweet object, and in the user_mentions entities. I get the full 140 characters to use if I want, although I didn’t in this example!
You can carry on adding additional @mentions to the text of further replies until the total hits 50 in the user_mentions entities, at which point they would be silently dropped, or you could edit them down again with exclude_reply_user_ids.