Pelo que entendi da sua pergunta.
distinct :- significa selecionar um distinct (todos os valores selecionados devem ser únicos).order By :- simplesmente significa ordenar as linhas selecionadas conforme sua necessidade.
O problema em sua primeira consulta é Por exemplo:eu tenho uma tabela
ID name
01 a
02 b
03 c
04 d
04 a
agora a consulta
select distinct(ID) from table order by (name)
está confuso qual registro deve levar para ID - 04 (já que existem dois valores, d e a na coluna Nome). Portanto, o problema para o mecanismo de banco de dados está aqui quando você diz ordenar por (nome).........