It's a VB.NET specific thing. I can't reproduce it in C#, though I can reproduce it in VB.NET.
I also can't reproduce it if I use:
Dim cnt = userQuery.CountColumn(Function(u) u.Id)
This produces a proper query. I think what happens is a problem with how VB.NET's compiler sees 'Count()'. It should see it as a call to the Aggregate Extension method 'Count()'. However it compiles it as a MemberExpression as it sees it as an access to the Count property instead.
When using .Count(), I get:
value(SD.LLBLGen.Pro.LinqSupportClasses.DataSource2`1[LinqTest2.EntityClasses.UserEntity]).Where(TUser => (TUser.Id == 10)).Select(TUser => TUser).Count()
as expression tree, though that still can be the property access, so I've to dig deeper with the expression tree visualizer. You should use CountColumn() instead as I illustrated above to work around this VB.NET specific thing. We'll see if we can add a check for this to the linq provider.