Sim, parece uma boa ideia, mas, de qualquer forma, vou propor uma alternativa que me veio à mente.
Se você tiver acesso às portas lógicas, poderá mapear muitos nbotões para ceil(log2(n + 1))pinos através da lógica booleana. Por exemplo, se você tiver 4 botões, mas apenas 2 pinos, poderá criar uma configuração como esta:
Buttons | Pins
---- | --
0123 | 01
---- | --
0001 | 00
0010 | 01
0100 | 10
1000 | 11
Ou seja, button0pressionado deve ter pin0e pin1baixo; button1, pin0baixo e pin1alto; button2, pin0alto e pin1baixo; e button3, pin0e pin1alta.
A partir disso, as seguintes expressões booleanas surgiriam
pin0 = button2 OR button3
pin1 = button1 OR button3
Um mapeamento de 4 botões para 2 pinos poderia, portanto, ser realizado com apenas 2 portas OR. Você precisaria de um pino adicional e alguma lógica adicional para indicar se algum botão está sendo pressionado.
Obviamente, ainda haverá problemas se vários botões forem pressionados simultaneamente.
Além disso, se você ainda seguir a abordagem do resistor, considere o uso de valores maiores nos resistores que não sejam 100 ohms, já que 5 V através de resistores da ordem de 100s de ohms produziriam uma corrente da ordem de 10s de mA, que é do tipo desnecessariamente alto. Eu acho que valores mais razoáveis seriam 10k Ohm ou 47k Ohm.