(Based on Szabolcs's & rm -rf's comment)
As you noticed, it doesn't really make a difference for as long as the commands written in the package don't print any output as a side effect. Packages typically contain definitions, which don't print anything when evaluated directly, so most of the time there's no need for semicolons. Set
is a possible exception, as you noticed.
Even cells in the package which contain code that otherwise prints output if Shift+Enter-ing the cell (e.g. lines with Set
, or simple statements without assignments like {1, 2, 3}
) won't print anything if the package is read in via <<
or Needs
.