JOSM code quality seems to be very good. I made 6 patches fixing problems
I had and it took me about 2-10 minutes to find the correct code, 2-30
minutes to understand it and 10-20 minutes to fix the problem.
That are really very good values, so JOSM code is pretty good to
understand also for people from outside of JOSM world. That's seldom.
Java and the structure it enforces may be a part of this, but
BTW: It's also very powerful from user's point of view, ever if interface
is not best for beginners. :-)