The part I'm most skeptical of is Eve's universal use of set-based semantics, whether it's needed or not. It seems like making sets and single values look different in the code would be more understandable than making everything look the same. Treating them as different types might be a good way to catch errors, too. But SQL is very successful so maybe they'll do okay anyway.
You can kinda roll your own "single value type": search a = [#singleton] b = [#singleton] a != b commit @error [#error #description: "Multiple values for singleton!"] I'm sure that's not the actual pattern you'll be using. My point is only that Eve provides a solid low-level foundation to implement higher-level patterns like a single-value type.
That's the problem. As long as single-value type is a higher level abstraction you are going in the opposite direction from "programming for everyone".