Hello,
The proximity of the keypad to the MCU will mainly determine the likelihood of induced transients, and the need for additional buffering. If the keypad is in the same enclosure as the MCU, I doubt that much would be gained by the buffering.
The series resistors were originally needed for current limiting should two or more keys associated with different columns be simultaneously pressed, where a conflict would occur between the active column and the inactive column(s). If the MCU column outputs can be arranged so that only one column is actively driven at a time, and the other columns are high-Z (inputs), the series resistors can be eliminated. You may find it more convenient to change the active logic state to low, so that the internal pullups can be used when a column is inactive, rather than external pulldown resistors.
I notice that the NOR-gate package (confusingly shown as a NAND gates in the schematic) is used as an encoder, to concentrate the six keypad rows into three inputs to the MCU. If three additional GPIO pins happened to be available, the gate package could also be eliminated, and the internal pullups utilized, giving further simplification.
However, if you wish to retain the encoder, and use an active low column state, a NAND-gate (or AND-gate) package would now be needed, along with pullup resistors, rather than pulldown resistors. A resistor value of 1k seems excessively low for the typical "standard" keypad.
Regards,
Mac