One more option for connecting the 40x4 LCD that I realized was there--not a change to the code but just using the fact that internally the flag for the RW line not having been passed is 255.
LiquidCrystal lcd(RS,255,Enable1,Enable2, data3,data2,data1,data0);
which saves one pin in the interface. Again it runs about 1/3 slower this way.