What's weird is five hours after asking that question, no one has provided a reasonable explanation of why C requires arrays to become pointers on function boundaries.
My "online search" found Walter Bright, who knows a thing or two about C compilers, wondering the same thing: