Lightly coat an 11- x 7-inch glass or ceramic baking dish with cooking spray. Preheat oven to 350°F. Heat 1 1/2 cups oil in a heavy 2-quart stockpot over medium high until a deep-fry thermometer reads 350°F.
Toss together shallots and 2 tablespoons flour in a small bowl. Add to hot oil; fry, stirring occasionally, until golden and crisp, 3 to 4 minutes. Using a slotted spoon, transfer to a plate lined with paper towels. Set aside.
Combine broccoli and 1/4 cup water in a large microwavable glass bowl; cover loosely with plastic wrap. Microwave at high until crisp-tender, about 5 minutes. Drain and set aside.
Heat remaining 1 tablespoon oil in a large skillet over medium. Add onion; cook, stirring occasionally, until softened, about 4 minutes. Add garlic; cook, stirring constantly, until fragrant, about 1 minute. Add wine; cook, stirring constantly, until liquid is almost evaporated, about 1 minute. Sprinkle with remaining 2 tablespoons flour; cook, stirring constantly, until onion pieces are coated. Whisk in milk; bring to a simmer over medium. Cook, whisking occasionally, until thickened, 4 to 5 minutes. Stir in cheese, salt, and pepper until melted and smooth, about 1 minute. Remove from heat.
Add artichokes to broccoli in bowl. Stir in cheese sauce. Pour into prepared baking dish; top with fried shallots. Bake at 350°F until warmed through, about 20 minutes.