More loopy looism

Here's a little thing I was forced to realise after a far too high profile site when slightly wrong (in a far too big way).

Looping a query inside a loop of another query changes the way you can refer to the outer-loops current row. Running the following code demonstrates this:

<cfscript>
    qry_foo = QueryNew('foo');
    QueryAddRow(qry_foo, 3);
    for(i=1; i LTE 3; i=i+1){
        QuerySetCell(qry_foo,'foo',"foo #i#",i);
    }
    qry_bar = QueryNew("bar");
    QueryAddRow(qry_bar, 10);
    for(i=1; i LTE 10; i=i+1){
        QuerySetCell(qry_bar,'bar',"bar #i#",i);
    }
</cfscript>
<cfoutput>
    <ul>
        <cfloop query="qry_foo">
            <li>#qry_foo.foo#
                <ul>
                    <cfloop query="qry_bar">
                         <li>#qry_foo.foo#</li>
                    </cfloop>
                </ul>
            </li>
        </cfloop>
    </ul>
</cfoutput>

The problem is that you cannot access the current row of the qry_foo query when inside the loop of qry_bar in this way. Instead, you would have to use:

qry_foo.foo[qry_foo.currentRow]

Does anyone else find this bizarre?