My personal opinion about preserved variables: They are rather bad coding style, because the primary purpose of variables is different, but they work obviously. Altera is using them by the way in the Quartus VHDL templates counter example.
Triggerman's storage problem has been finally clarified. I think, it's no necessary to spoonfeed more detailed examples of RAM versus regsister storage. It's more effective to evaluate the basic options and their limitations by making Quartus compile some test code. As said, the test designs must have output signals (that actually depend on stored data somehow), otherwise the results are void.