Our policy is to record email opt-in consent each time that we are given it by a constituent. With the changes to the consent tile, once someone is already opted in, you cannot add additional instances of opting in to email on top without first opting them out of receiving email - which makes the process more longwinded (and seems wrong as they've not actually opted out at all, it's just that RENXT doesn't allow us to add additional opt-ins)
We have returned to using database view for this instead for the time being.
We're in a similar position. We're relying on database view to record new expressions of any unchanged consent preferences – whether opted in or out of any given channel. This is essential so that we can see the most recent date each consent preference was expressed, even if it's an additional instance of the same preference.