Unfortunately, that's actually a pretty good answer.
To elaborate, how useful would your computer be if you couldn't say things like
x = y;
and
n = strlen( s );
For the second part, you have to have paid enough attention to understand something about the design characteristics of a RISC processor. Why indeed would there only be some limited number of bits for storing a literal value in an opcode? And what provision exists for overcoming it? (And -- bonus question -- why isn't this considered bothersome by anyone?)