Se eu retornar um valor dentro de um bloco usando em um método, o uso descarta o objeto antes do retorno?

Estou passando por algum código C # .NET antigo em um aplicativo ASP.NET, certificando-se de que todosSqlConnections estão embrulhados emusando blocos.

Eu sei dissousando é o mesmo queexperimentar / finalmente onde ele descarta o objeto nofinalmente não importa o que aconteça noexperimentar. Se eu tiver um método que retorne um valor dentro dousando, mesmo que a execução deixe o método quando retornar, ela ainda chama.Dispose () no meu objeto antes / durante / depois de retornar?

public static SqlCommand getSqlCommand(string strSql, string strConnect){
    using (SqlConnection con = new SqlConnection(strConnect))
    {
        con.Open();
        SqlCommand cmd = GetSqlCommand();
        cmd.Connection = con;
        cmd.CommandText = strSql;
        return cmd;
    }
}

Atualizar: A resposta aceita é a que eu acho melhor responde à minha pergunta, mas observe queesta resposta percebi a estupidez desse código, que estou retornando um comando que usa uma conexão descartada! : P

questionAnswers(2)

yourAnswerToTheQuestion