I think your code and mine are equivalent. Maybe it's a c# to VB misunderstanding.
I do not count the group row itself. Notice the continue statement which causes an immediate new iteration of the for each loop.
In my code i += 1 is not executed for group rows.
If I'm right VB.net does also have a Continue For statement since VB.Net 2005. I guess it's a matter of personal coding preference.
Coming from a c++ background, continue seems natural to me ...
iCount += GetVisibleRows(row.ChildRows)
iCount += 1
just noticed the telerik parser here does not seem to recognize Continue ...