$x \cdot y$ is commonly understood, if no reference is made to matrices, as the scalar product. I.e. $x \cdot y = \sum_{i=1}^N x_i y_i$.
In matrix notation, $x \cdot y$ will only be defined if both $x$ and $y$ are $N \times N$ matrices, otherwise it is undefined. If both $x$ and $y$ are $N \times K$ matrices, you have to specify whether you want $x^T \cdot y$ or $x \cdot y^T$. Then the result will either be $N \times N$ or $K \times K$. In particular, if either $N$ or $K$ equals 1, you are back to the scalar product in one of the two cases $x^T \cdot y$ or $x \cdot y^T$. Visualize this as matrices as follows:
$\left( {{x_1 \atop \vdots} \atop x_N} \right)^T \cdot \left( {{y_1 \atop \vdots} \atop y_N} \right) = (x_1, \dots, x_N) \cdot \left( {{y_1 \atop \vdots} \atop y_N} \right) = \sum_{i=1}^N x_i y_i$
and
$(x_1, \dots, x_N) \cdot (y_1, \dots, y_N)^T = (x_1, \dots, x_N) \cdot \left( {{y_1 \atop \vdots} \atop y_N} \right) = \sum_{i=1}^N x_i y_i$
So contrary to what you are saying, $ (x⋅y)X$
is defined only if $x⋅y$ is understood as the scalar vector product, however this should be avoided since it is a "sloppy" notation mixing vectors and matrices. If $x$ and $y$ were matrices, it would not be generally defined.
$ x^T y X $ is defined without problems (all are matrices), if you interpret the order of operations as $ (x^T y) X $ .