Strictly speaking 2d matrices with one dimension equal to one are still vectors.
It's probably subjective. To me, it's still a matrix.
Strictly speaking row by column vector product is scalar vector product, i.e.
row_vec * col_vec
To me, it's a dot product and I wouldn't want it to change.
in Octave terms by _mathematical_ default should be implemented as sum(row_vec(:) .* col_vec(:)), but it's not the default I want - in most of the cases I really don't care whether a vector is a row or a column one, and I'm wondering if anybody else cares.
Following your reasoning, "col_vec * row_vec" wouldn't produce a matrix. I wouldn't that to change either.
I still don't understand the motive of promoting a N elements vector to N x N elements matrix.
As explained in the documentation (see link mentioned by Jordi), you can get back the old behavior by turning the broadcast warning into an error.
Michael.