IMHO, This isn't really a bug more of a configuration gotcha. I thought I'd post it just to help anyone who gets caught.
In 2.1.6, both the Jforum and Install servlets extend the JforumBaseServlet class. (Haven't checked 2.1.7). If the Install servlet is initialized after the JForum servlet has been initialized, there will be a lot of cache related NPE problems, like MostUserEverOnline being null, SmiliesRepository problems.
This is because the JforumBaseServlet init method is called by both servlets. The base init method initialises the Cache engine. So, if it is called after the Jforum init method (which initialises the various repositories) the cached info gets cleared.
The solution is to do what the installation instructions suggest and remove the initialize servlet from the jForum web.xml (both servlet and mapping definitions).
FWIW, I found this by adding a <load-on-startup> web.xml condition to the the Jforum servlet. This setting will initialize Jforum on restart rather than delaying the first user's request. But this failed until I noticed two log messages from JForumBaseServlet.