I don't see anything here that would make me consider this over Go, though. Languages are rarely chosen based on their designs alone. Go is about as bleeding edge as I can get away with in my job.
A big problem is lack of good, built in UTF-8 support. But the no garbage collection thing is interesting as I didn't spot any explicit allocs or frees anywhere when I skimmed.
Go is about concurrency. Clay is about generics.
Go is garbage collected; Clay is not. This allows Clay to be more suitable in environments where GC non-determinism/performance is unacceptable.
A better comparison would be Rust and Clay. Rust seems to emphasize correctness in the type system, Clay on making existing C++ style generics less cumbersome to use (a frankly laudable intention). On the other hand, I think it would be easier to give Rust the good things in Clay than the other way around.
Languages always succeed based on support (documentation, community, tooling)--not features.
I brought Go up here because it stands the best chance of inheriting the role that C and C++ occupied for systems software, and which Python is also taking over. That's why it was created, so developers could have a statically-typed systems language that wasn't C or C++ or Python or Java, since all of those were unsuitable in various tasks for one reason or another.
I did not in fact read all 63 pages (!) of the language reference, but as for the predicated type declarations (found here, for the curious), I agree, they are very cool.
Let me clarify: I'm not saying the language does not have good parts to it. I'm not even saying that there's no room for a new systems language. I'm just saying for my use case, I can't justify using it and I'll stick with Go for now.