@OptimusBain, I think there is a way.
Create a group "Customers" that will be used only as secondary group.
Let the new registered members be in Members group.
If a member purchases something, you move him in another group to grant benefits, let say VIP.
Add a secondary group Customers while purchasing, it can be made automatically.
If a purchase expires or is cancelled, return them to Members.
BUT let their secondary group Customers persist after expire or cancel.
That way you can distinguish:
Members - never purchased something
Members with secondary Group Customers (there was a purchase in the past)
See the product setup below: