There is always room for surprises.
So it turns out that in the routing syntax just "AA" refers to a
direct flight, but not necessarily a nonstop one. It does not seem unreasonable when you think about it, except that I never thought about it.

To force nonstop, we'd say N:AA, N:AA+ etc.
If you want to avoid a city, say STL, my reliable "AA ~STL AA" is not the best syntax, because either AA could be a direct flight with a stop in STL. So from now on, the syntax for avoiding cities is "N:AA+ / -cities ORD STL". (See
http://www.flyertalk.com/forum/15759732-post4.html.)