Preheat the oven to 350 degrees F. In a large bowl, whisk flour, baking soda, sugar, and salt together and set aside.
In a 10-inch cast iron skillet, bring the butter, vegetable oil, cocoa powder, and water to a boil. Remove it from the heat and whisk in the dry ingredients well. Mix in the buttermilk, egg, and vanilla. Bake the skillet cake at 350 degrees F for about 15-20 minutes or until a toothpick comes out with just a few moist crumbs.
While the cake starts to cool, make the frosting. In a medium saucepan, bring the butter, cocoa, and milk to a boil. Remove them from heat and add the icing sugar, nuts, and vanilla. Stir to combine. Pour over the warm cake, spread with a spatula, and serve with vanilla bean ice cream, caramel sauce, and whipped cream.