That syntax declares the value of newCount as a default argument for the value parameter, so we can't use literally this syntax. This only works for type parameters indirectly, because a metatype T.Type already exists for every type T, and it only has one possible value T.self, so the metatype parameter acts as a way to force T to be a specific type at a call site. It might be nice to revisit the ability to explicitly provide generic arguments instead of coming up with something bespoke.
Could you clarify what you mean? If Vector has a static var count member, then StrongType.Bytes.count would already work.