Em resumo
$(document.getElementById("test:abc"))
é o que você deve usar.
Explicação : Além do ganho de velocidade (veja mais abaixo), é mais fácil de manusear.
Exemplo: Digamos que você tenha uma Função
function doStuff(id){
var jEle = $("#" + id); //is not safe, since id might be "foo:bar:baz" and thus fail.
//You would first have to look for ":" in the id string, then replace it
var jEle = $(document.getElementById(id)); //forget about the fact
//that the id string might contain ':', this always works
}
//just to give an idea that the ID might be coming from somewhere unkown
var retrievedId = $("foo").attr("data-target-id");
doStuff(retrievedId);
Velocidade / Tempo
dê uma olhada neste jsbin que testa e compara a velocidade dos métodos de seleção de IDs com dois pontos
você precisa abrir o console do firebug para obter os resultados.
Eu testei com o firefox 10 e o jquery 1.7.2
basicamente, eu selecionei 10.000 vezes de uma div com dois pontos no id - com os diferentes métodos para alcançá-lo. Então eu comparei os resultados com uma seleção de ID sem dois pontos, os resultados são bastante surpreendentes.
tempo restante no método seletor ms à direita
299 $("#annoying\\:colon")
302 $("[id='annoying:colon']"
20 $(document.getElementById("annoying:colon"))
71 $("#nocolon")
294 $("[id='nocolon']")
especialmente
71 $("#nocolon") and
299 $("#annoying\\:colon")
vem um pouco como uma surpresa