I'm wondering why they don't use the payment terminal's reader mode for this. I know it can be done – Rimi shops in Baltic states handle both magstripe and NFC loyalty cards through the terminal (just regular Ingenico ICTxxx line terminals, like many shops in Russia use).
I suspect this has to do with the POS software Russian stores use being inflexible or bank SDKs being restrictive. Probably the latter, as I've seen some kiosks that take card payments just pop up a Windows window with the Sberbank logo and transaction status instead of showing that in their own UI.