I wonder if RISC-V will be able to keep its simplicity for a long time. ARM began as a small instruction set as well, and now we have instructions like the FJCVTZS (Floating-point Javascript Convert to Signed fixed-point, rounding toward Zero).

RISCV's main answer to this is to separate the instruction set into modular subsets so the baggage only has to be carried by those who need it. The core set doesn't even have multiplication.

On the other hand the instruction set extensions can be bulky.

For instance the bit manipulation set at https://github.com/riscv/riscv-bitmanip adds frequently used operations like conditional move and population count, but also adds things like "multiply binary matrix" and "generalized or-combine", which I'm not sure even exists in X86 or AMD64.