Question: Is there any reason why or why not you should do an 'order by' in a subquery?

Answer: 
Smarter people say that is not proper/valid way to do it.
In my case SELECT TOP 100 PERCENT in sub-query solved the problem.

Cheers
You can do it, but I wouldn't usually unless you have a need.

The optimiser will ignore it (or throw an error?)

See "[Intermediate materialisation](http://dataeducation.com/cursors-run-just-fine/)" for some usages.