Now wait just a second -- it's not "retarded" at all.
MySQL doesn't even look at the column list until the final steps of statement processing -- which is why you can't use column aliases in the WHERE clause. Since the aliasing is performed in a single-pass, there's no possible way to get the alias of an alias -- which is exactly what you're asking for with "convratio". Think about it for a minute, and it should make sense why you can't do it.
As for your question about the same expression appearing twice, the optimizer should pick that up -- unless it's in a dependent subquery, and then all bets are off.
Furthermore, there is absolutely no reason why you can't just get the ratio in php and add it to the column list. The other option is simply to actually derive convratio as the ratio of two subqueries in the column list... but I can't imagine that would be faster...
Hope this clarifies things a bi.