A czy w Scali tak jest? Możesz zdefiniować sobie metodę &&. Czy takowa - bez argumentu by-name - oblicza (albo czy powinna obliczać) dany argument leniwie? W Boolean formalnie mamy zdefiniowaną ją jako &&(x: Boolean).
Hmm i tak żeby można było zastosować short-circuit to wyniki muszą być typu Boolean, czyli gdzieś tam po drodze musi nastąpić konwersja. Zrobiłem przykład, nie wiem czy jest sensowny: http://ideone.com/PvjGC
Konwersja implicit jak widać się nie wykonała przy && &&, ale przy && || już tak.
&& nie oblicza prawego argumentu jeżeli lewy to false. Jeżeli argumentami nie są Booleany, ani nie są one konwertowalne implicite do Booleanów, to nie ma wtedy jak rozgraniczyć sytuacji, w której potrzebne jest liczenie prawego. W ogóle semantyka prawdopodobnie nie będzie się zgadzać nawet.
Ale to już chyba wszedłem w zbyt abstrakcyjne rozważania :P