Hola:
Si una clase tiene un método "static", se puede llamar a ese método sin necesidad de instanciar la clase, como en el caso de Math.pow(...).
En el código de ese método static puede estar perfectamente el new
Código:
public class Clase {
public Clase static getInstance() {
return new Clase();
}
}
....
Clase instancia = Clase.getInstance();
En el ejemplo que pones, este tipo de cosas se pone para "aislar" al programador de ciertos detalles. Con el NumberFormate.getCurrencyInstance() obtendras un NumberFormat adecuado a tu pais para el tema de moneda, sin preocuparte tú de obtener el locale y demás, ya que el metodo getCurrencyInstance() se encarga de ello. La otra opción sería que hicieras tú el new de la clase pasándole en el constructor los parámetros del país.
Se bueno.