Bring the water to a boil in a pot with the salt, then add the butter. When it has melted, pour in all the flour at once and stir with a wooden spoon over very low heat.
Stir until the dough comes together into a dry ball and pulls away from the side of the pot (about 2 minutes). Remove from the heat and let cool.
Work in the eggs one at a time, stirring continuously - the dough must stay firm.
Heat plenty of oil in a pot or pan.
With an oiled teaspoon, shape small balls from the dough and slide them into the oil. Turn them with a slotted spoon and fry only a few at a time so they don't stick together while they puff up. Remove when golden brown.
For the cream, bring the milk to a boil with the cinnamon and lemon zest.
Meanwhile, in a bowl, whisk the egg yolks with the sugar and flour until smooth.
Slowly pour the hot milk into the egg mixture, stirring continuously.
Return to the heat and stir constantly until it boils again so it doesn't get lumpy. Remove and cool in a clean dish.
Fill the buñuelos with the cooled cream using a piping bag, and serve dusted with powdered sugar.