Preheat oven to 350° F.
Lightly oil two 8-inch round cake pans. To make the batter, in a large bowl, combine flour, sugar, baking soda, salt and cocoa powder. Create a well in the center, and add milk, oil, food coloring, vinegar and vanilla, and mix until thoroughly combined. Divide cake batter evenly between prepared cake pans. Place pans in the oven spaced evenly apart. Bake for about 35 minutes, rotating 45 degrees halfway through. When the cakes pull away from the side of the pans and a toothpick inserted into the center of each comes out clean, they are ready. Let cakes cool for 10 minutes in the pans, then run a knife around the edges to loosen them from the sides. One at a time, invert cakes onto a plate and then re-invert onto a cooling rack, rounded-sides up. Let cool completely.
To make the frosting, with an electric hand or stand mixer, cream butter until it is smooth and begins to fluff. With the mixer on low speed, add confectioner’s sugar and fluff for another few minutes. Add vanilla, milk and food coloring (if using). Once all ingredients are well-combined, beat on high until frosting is light and fluffy, 3 to 4 minutes. Add 1 or 2 tablespoons more milk to achieve the right consistency. Cover the icing with plastic wrap to prevent it from drying out until ready to use. Rewhip before using. To frost cake, place one layer, rounded-side down, on a plate or cake stand. Using a palette knife or offset spatula, spread some frosting over top of cake. Carefully set other layer on top, rounded-side down, and repeat. Cover entire cake with remaining frosting. If desired, sprinkle with pecans.