Your descriptions sound pretty sound.

One thing I do is use flags to detect if an LCD needs updating or not. The setting and testing only take a few clock cycles, but save a lot. Another trick is to avoid updating the LCD too often. For instance, if your loop is going at 50Hz, there is no way you'll be able to read the display that fast. Anything much faster than about 10Hz is time wasted. You can set up a counter so you only update once every 5 loops or so.

Take note that the LCD commands are very slow, and made even worse by the built-in delay. (Which was put there to increase success rates, accommodating a variety of LCD screens.) You may want to play with the LCD Declare's to see if you can reduce the delay times to make your loop faster. The more characters you send, the more the delay effects your overall loop time. You might even want to set up a test loop just to time how long it takes to make your LCD update; the information should help you make decisions.