Is it common/good practice to scale down faces in the UV Editor to fit into 1 pixel to have a normal diffuse?
Your approach is fine. If it works in tests, stick to it.

Changing (scaling down) the uv coordinates, won't affect your performance at all. If you can update the palette easily, your method has many advantages.

Make sure, you disable interpolation of the texture in your game engine. You want to keep it sharp. In Blender internal renderer (as an example), these filter setting are required, to keep the texture pixelated.



The usual is to assign different materials, with different colors to their respective faces. In Blender this is done by creating new material slots in the material properties panel and then assigning them by selecting the mesh's faces in edit mode and pressing assign with the material slot selected.This will export to most formats and engines.