Eine Tabelle kann neben tr-Elementen auch (teilweise mehrere) thead-, tbody-, tfoot-, colgroup-, script-, template- und caption-Elemente enthalten. (Und zusätzlich alles, was ich vergessen habe.) Und ein tbody darf auch nicht nur tr enthalten. Deshalb halte ich deine Vorgehensweise nicht für uneingeschränkt geeignet.
Was spricht dagegen, einfach mit getElementsByTagName('tr').length
die tr zu zählen?