Why the port type of this module default to 'var'?
The rule is on the previous page


  If the port kind is omitted: — For output ports, the default port kind depends on how the data type
  is specified: 
    — If the data type is omitted or declared with the
  implicit_data_type syntax, the port kind shall default to a net of
  default net type. 
    — If the data type is declared with the explicit
  data_type syntax, the port kind shall default to variable.


These implicit rules are ridiculously complex in order to save a few keystrokes. You are much safer to be explicit.