Mostly these days it just requires that you start to type "print" and then press tab when appropriate, though. I feel like I relatively rarely type brackets manually for function calls. Lisp syntax doesn't seem amenable to this particular affordance?
Why not? Could just type 'print', TAB, and have it put brackets and spaces in the right positions and leave the cursor in place for the first argument.