De hecho, en cualquier procesador de 32 bits es más eficiente un contador Integer que Byte. A no ser que se trate de una aplicación cuyo uso de memoria sea un factor ultra súper crítico, dudo mucho que valga la pena "ahorrar" tres bytes a cambio de darle
más trabajo al procesador, además de volver
más lento el código.
En cuanto a lo del tamaño del programa, haz una prueba y dinos cuántos bytes adicionales toma el ejecutable al usar LeftStr en lugar de Copy. En muchos casos la diferencia es 0 (sobre todo si se trata de una aplicación que incluye formularios).
Cabe recordar que
el compilador NO incluye todas las funciones de una unidad referida a través de un Uses, sólo las que el programa utilice (algo que hace todo buen compilador, Delphi no es Cuic Basic

).
Un abrazo.
Al.