I can't find where this is documented, but Vim defines "a word", for
most purposes, as a sequence of word characters followed by white
space. That definition can't hold at the end of the line, so the
developers were left with a choice of including the preceding white
space or not including any white space. The choice to include the
preceding white space is pragmatic.
If you want to cut a word from one place and paste it somewhere
else, it is convenient for that cut to include white space so that
you don't have to remove it separately from the cut location nor add
it separately to the paste location. There is no following white
space at the end of a line, so the preceding white space is included
instead. Also, if you delete a word at the end of a line,
presumably you don't want to leave white space at the end of that
line.
That logic is also applied in other situations where a sequence of
word characters is followed by a non-word character such as
a closing parenthesis.
Regards,
Gary