A reason is logged, if it is provided. I'll admit I don't enter a reason for a lot of the cases that I process that involve, for example, Grawp socks. It could easily be made mandatory, at the cost of making the process more annoying than it already is. An exhaustive checkuser search of a sock farm can take hundreds of checks, and the tools, as powerful as they are, have a pretty primitive interface. But there's no technical cause that reasons can't be mandatory.
The reason could be preserved between checks, so you don't have to type it in again. That should solve that problem.