Preheat oven to 350 F. Grease two 9-inch round pans and line the bottom with parchment papers. In a bowl, whisk together cake flour, salt and baking powder.
In the bowl of a stand mixer, beat together butter and sugar until fluffy and creamy, about 5 minutes. Beat in the eggs one at a time, incorporating well after each addition. Scrape the sides of the bowl as needed. Beat in vanilla.
Add the flour mixture and milk alternately, starting and ending with the flour mixture. You should have added the flour 3 times, and the milk 2 times. Pour the batter evenly between the two prepared pans. Bake at 350 F for 30-35 minutes, or until a toothpick inserted at the center of the cakes come out clean. Remove from pans by turning it over on a wire rack. Peel off the parchment paper and let cool completely.
Beat butter for 5 minutes until fluffy. Gradually add the dulce de leche and then the vanilla while beating continuously. The buttercream will be grainy at first. Add the powdered sugar 1 cup at a time while beating the mixture until the buttercream turns from grainy to smooth and the consistency is spreadable.
Lay the first layer of cake in a rimmed serving plate. Spread the buttercream on the surface and top it with the second layer of cake. Frost the top and sides of the cake. Use an angled spatula to smoothen the buttercream on the cake. Pipe some decorations on the cake using a star piping tip, if desired. Pour the reserved dulce de leche on top of the cake, letting some drip on the sides.