I have written an article about using an input abstraction layer with Xith3D. In particular, some reasons for abstracting input are covered, and I walk though the conversion of an AWT demo to HIAL. Since Xith3D abstracts the rendering, I personally regard abstracting input as a "best practice" for Xith3D developers (if not others too), hence the effort I have put into developing the library, and writing the article.
I hope you get something out of it! Read it here: http://tankammo.com/article/input
For my game, I allow users to select between LWJGL and JOGL which I have found quite useful at times, for example when a LWJGL problem causes it to crash on a particular configuration, JOGL can be used.