I used software rendering at the very beginning of my project in 2006. The engine I used was called d3caster, it uses a very basic raycasting algorithm. There are more efficient solutions even in this field, 3DzzD is very fast and supports both hardware and software rendering. However, I agree with kappa. You can get a decent frame rate even on low end machines if and only if you use very simple meshes. Todays CPUs move the limits further but when you use Java, some operations are already hardware accelerated "under the hood" and your rendering will always be noticeably slower on the CPU anyway.
I have used JOGL for several years, it contains some nice renderer quirks to work around some very famous driver bugs which drives it safer than home made OpenGL plain C/C++ code except if you are a specialist of drivers :s The very first version of my game only has 2D ennemies in a flat 3D level, a bit like Wolfenstein and hardware acceleration gave me a huge boost, the game was initially unplayable in full screen mode, it was so slow, I got only one frame every 2 seconds with software rendering
Use software rendering only if you don't aim low end CPUs or if your graphics are extremely rudimentary but I don't see the point except that you don't need to sign your application.