From the help pages for the Gram Schmidt command:
The number of Vectors returned is the dimension of the vector space spanned by V. In particular, if the Vectors in V are not linearly independent, fewer Vectors than the number in V are returned.
That is not what happens when floating point numbers are involved, for example:
>a := Vector([1, 2, 3]); b := Vector([1, -2, 3]); c := Vector([3, 2, 1]); d := Vector([5, 1, -3]); e := Vector([0, 1.01, -3]);
>GramSchmidt([a, b, c, d, e]);
This returns 3 vectors as it should BUT
>GramSchmidt([b, c, d, e, a]) returns 5 vectors (one of which is essentially 0). That is definitely a bug.