While I'm also disappointed with the inability to provide numeric constraints, I don't otherwise find the constraints useless. What they let you do is invoke specific methods and properties on the objects. For example, in Cobra's own compiler source code we have:
class Container<of TMember>
is abstract, partial
where TMember must be class, IMember
inherits NamedNode
implements IContainer, IType
...
The constraint is the line with "must be" and it's necessary for the Container class' implementation (unless we went dynamic with everything, but that sacrifices speed and compile-time error checking).