My impression is that DVMs make some sense if you're doing tasks like translating notes that produce events that can be reused by thousands of clients, but they don't make sense if you're calling them like an API and generating a ton of garbage events in the process, sometimes even encrypted.
They both process data differently that’s for sure - relay is your rawest and simplest decentralized form. Dvms are like Shopify - aggregators of sorts and have centralized access points - clients might find it easier to extract data and modify than to custom build, but might create a centralized bottleneck and other centralized risks if not careful. I don’t know enough about redundant events but sounds more like a design issue than a system issue? Maybe better implementations might help (filtering etc)
i guess the simplest way to imagine the differentiation between dvms and nostr is that relay on nostr functions like the internet itself, while dvm is an app that sits on top of it. The risk is when all clients rely on dvm as primary access point, which can lead to centralisation.