Onde salvar
Mesmo salvando no backend, seria bom manter isso em localStorage
ou IndexedDb
pelo mesmo motivo que salvamos o user
.
Limite de votos
Quando o cálculo de TabCoins recebidas por conteúdo postado estiver considerando a TabExp (ou Karma ou outro nome escolhido para a reputação dos usuários), acho que esse limite não será necessário, pois só quem realmente criou conteúdo de valor concreto terá TabCoins para votar.
Cancelar votos
Poderia ser implementado apenas para os casos de cliques acidentais, assim só seria permitido recuperar as TabCoins utilizadas em no máximo alguns segundos.
Por exemplo, se o usuário clicar em up e logo em seguida em down, o segundo voto anula o primeiro e devolve as TabCoins.
Outra alternativa é mostrar por alguns segundos uma growl notification para dar a oportunidade de cancelar o voto. Esse mesmo padrão pode ser utilizado para todo tipo de arrependimento que for implementado futuramente.
Em qualquer caso, é bom isso ficar registrado nos eventos.