The behavior you observed is a result of the sequence in which the query is logically processed - see this page for the logical query processing phases. http://msdn.microsoft.com/en-us/library/ms189499%28v=sql.105%29.aspx The select clause comes after the where clause, so an alias defined in select is not available to the where clause.
The only workaround, other than repeating the expression, is to use a subquery or cte - for example:
SELECT * FROM
( Select Account, RTRIM(ClientName) as CN from Clients ) s
Where CN = 'Johnson'But that is likely to have performance impact.