This was originally noticed on Special:Block - see T324602#8700556 for details.
In no-JavaScript mode, the TagMultiselectWidget is represented by a MultilineTextInputWidget. This is configured to be 10 rows high:
$textarea = new MultilineTextInputWidget( array_merge( [ 'name' => $this->inputName, 'value' => implode( "\n", $this->selectedArray ), 'rows' => 10, 'classes' => [ 'mw-widgets-tagMultiselectWidget-multilineTextInputWidget' ], ], $this->input ) );
One row is used for each tag. If the maximum number of allowed tags is less than 10, the excessive rows are not needed, so the widget is unnecessarily tall.
We should set the number of rows to the minimum of (10, max number of tags).