LINQ isn't very good at recursion and Control.Controls isn't LINQ enabled (needs Cast).
Sometimes a method is the best solution. Since you can write one that works for all Controls it will be even more reusable than a LINQ query. It could be an extension method.