teedeeus:
I agree with what you are trying to do with the LCD library - here are some comments, both pro and con, on what you have done so far. I hope you can use them to refine your project.
In my opinion removing the 8-bit stuff from the library is a good idea. I can't see any reason to try to accommodate both configurations in one library. I can't think of any situation where one might want to switch back and forth during the execution of a program. When I questioned this approach on an Arduino forum the answer was that it is easier to maintain one library rather than two. My response was that it was easier for the original author to maintain, but harder for anyone else, hardly what you want in an open source environment. I got no further response to that statement.
There are some serious problems with the LCD initialization routines in the LiquidCrystal library which I have been attempting to get the Arduino team to correct. They were on the to-do list for v16 but didn't make it in. I have written them up and posted them at
http://web.alfredstate.edu/weimandn. Follow the link to 'An improved LiquidCrystal library'. You should also look at the 'LCD Initialization' link before you remove any more of the time delays. They are absolutely necessary if you expect every LCD to work every time, especially as processor speeds increase.
Finally, what are you going to call your next version of the revised library? How about ReallyNewLCD? (sorry Paul, I couldn't resist that)
Don