Я не уверен, почему вы делаете один из этих запросов. Поиск альбомов, в которых хотя бы у одной песни есть аудиофайл, выражается просто как:
Album.objects.filter(song__audio_file__isnull=False)
Второй путь лучше, потому что он может использоваться вне основного (), поэтому когда Вы осуществляете рефакторинг, это - то меньше вещи думать о.
Также мне не нравится "волшебство", которое помещает args в параметр метода для первого пути.
Вы знаете getopt? Существует порт для C# на codeplex: http://www.codeplex.com/getopt
Мне первый путь кажется более интуитивным потому что, именно так я делал его со своих дней C/C++.
, Если Ваша командная строка имеет слишком много переключателей, смотрите на getopt, который рекомендует Thomas. Это довольно полезно. Я не взглянул на порт C# того же все же.
С уважением,
kgr