Конструкции следующего вида являются источником скрытых ошибок в Delphi, т.к. явно не указано к какому конкретно объекту применяется метод Free поэтому по правилам он применяется к объекту SQL, а не к объекту с типом TQuery.