Si devuelvo un valor dentro de un bloque de uso en un método, ¿el uso dispone del objeto antes del retorno?

Estoy revisando un código antiguo de C # .NET en una aplicación ASP.NET asegurándome de que todoSqlConnections están envueltos enutilizando bloques

Yo sé esoutilizando es lo mismo quetratar / finalmente donde dispone del objeto en elfinalmente pase lo que pase en eltratar. Si tengo un método que devuelve un valor dentro deutilizando, a pesar de que la ejecución deja el método cuando regresa, todavía llama.Disponer() en mi objeto antes / durante / después de que regrese?

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;
    }
}

Actualizar: La respuesta aceptada es la que creo que responde mejor a mi pregunta, pero tenga en cuenta queesta respuesta ¡Capté la estupidez de este código, que estoy devolviendo un comando que usa una conexión eliminada! :PAGS