Dunque, le risposte alle tue domande:
1- gli unici browser su cui document.getElementById non funziona (se non mi sbaglio) sono gli IE antecedenti alla 6 (quindi IE5-) e qualche versione di Netscape (anche se non ne sono sicuro), quello che so per certo è che di solito si fa:

codice:
var elem = null;
if(document.getElementById)
  elem = document.getElementById("MyId");
else
  elem = document.all["MyId"];
e dovrebbe andare su tutti i browser.

2- removeAttribute e setAttribute sono le funzioni DOM per impostare gli attributi di un element node, rispetto a elem.disabled che è un assegnamento di proprietà, sono più puliti perché, in sostanza, non partono dal presupposto che l'attributo esista, ma lo istanziano loro, inoltre, removeAttributo RIMUOVE completamente l'attributo, mentre fare elem.disabled = false, non rimuove l'attributo, ma ne modifica solo il valore e, con gli attributi selected e disabled, in alcuni browser mettere disabled = false o "" non basta a togliere il disabilita.

3- Su linux l'unico editor per JS che conosco, e trovo valido, è Aptana Studio, non tanto perché è veloce o bello (è un Eclipse limitato a HTML e JS, che puoi estendere con PHP ed altra roba), ma perché ha l'auto completamento di JS, cosa che NON ho trovato praticamente da nessuna parte...