There isn't really a "need" of any index when it comes to the core. In order to satisfy the plugin's requirements you only need an indexed timestamp updated when voting. The flag is not necessary for this plugin. I'm just thinking in general (core) terms and what might be useful for the end user or developers.
Now, the only feature I can think of in which this information might be useful is to display the date of the vote action when hovering over an up/down arrow. This could be also applied to the flag (regardless of the fact that it will be used by the plugin or not).
Anyway, to show the timestamp of the vote/flag the index is not necessary so I wouldn't add an index to the core (even if it is only on the vote timestamp). Not to mention that, in my previous comment, I was thinking on an index just on the timestamp, which means you can quickly get all the ordered votes site-wide but not at a user level, EG: Last 10 votes per user. That would require an even more custom index on userid and timestamp (on that order). And, again, I wouldn't add that to the core either.
To sum up, adding a timestamp might help and will allow the end user to see when a vote (or flag, if the other timestamp is also added) has been performed. It will also allow your plugin to search on that column and order the way you want. However, without the appropriate index, the query you need in your plugin will run very slow as it will need to perform a full scan. IMO, the best core-friendly approach to implement this plugin will be to create a custom event logger and track the votes manually with any information you need on a separate table.