Prepare the batter: In a large bowl, whisk together flour, sugar, baking powder, baking soda, and salt. In a separate bowl, mix buttermilk, egg, melted butter, and vanilla. Combine wet and dry ingredients, stirring gently until just mixed. Let the batter rest for 5-10 minutes.
Make the cinnamon filling: Mix softened butter, brown sugar, cinnamon, and vanilla (if using) until smooth. Transfer to a piping bag or zip-top bag with a small corner cut off.
Heat the skillet: Preheat a non-stick skillet or griddle over medium-low heat. Lightly grease with butter or cooking spray.
Cook the pancakes: Ladle ¼ cup of batter onto the skillet for each pancake. After 30 seconds, pipe a thin spiral of cinnamon filling onto each pancake, starting from the center. Cook for 2-3 minutes until bubbles form, then flip gently and cook for 1-2 minutes more.
Make the icing: Beat cream cheese until smooth. Gradually add powdered sugar, then milk, until pourable. Stir in vanilla. Drizzle over warm pancakes.
Serve: Serve immediately with extra icing, if desired.