I don't know where the brackets round the number for absolute addressing syntax comes from though.
Probably to maintain an analogy with the address register (i.e. pointer) dereferencing syntax:
move.l (a6),d0 (copy contents of address pointed to by a6)
vs
move.l a6,d0 (copy a6 itself)
since the ambiguity move.l 4,d0 would create has already been resolved by the # prefix for immediate transfer.
With no ambiguity left between move.l 4,d0 and move.l (4),d0, it ends up being a matter of style/personal preference.
I've only seen (and used) the move.l 4,d0 syntax though, both in others' code and in disassemblers' output.