### Summary

The `scp_if_ssh` configuration is ignored due to a default value for `ssh_transfer_method`

### Issue Type

Bug Report

### Component Name

lib/ansible/plugins/connection/ssh.py

### Ansible Version

```console
$ ansible --version
```


### Configuration

```console
$ ansible-config dump --only-changed
```


### OS / Environment

N/A

### Steps to Reproduce

https://github.com/ansible/ansible/blob/26827f50393b21a87b8640387cb77ee0801155ea/lib/ansible/plugins/connection/ssh.py#L274-L283

https://github.com/ansible/ansible/blob/26827f50393b21a87b8640387cb77ee0801155ea/lib/ansible/plugins/connection/ssh.py#L1173-L1194

Because `ssh_transfer_method` has a default of `smart` the `if ssh_transfer_method is not None:` is always `True`, meaning the `else` statement that handles `scp_if_ssh` is ignored.

`ssh_transfer_method` has no host/inventory var, but `scp_if_ssh` does.  I found this targeting a host that does not support sftp.

### Expected Results

`scp_if_ssh` not ignored

### Actual Results

```console
`scp_if_ssh`ignored
```


### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
run_reset = False
        
        
        
        cmd = self._build_command(self.get_option('ssh_executable'), 'ssh', '-O', 'check', self.host)
        display.vvv(u'sending connection check: %s' % to_text(cmd))
        p = subprocess.Popen(cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
        stdout, stderr = p.communicate()
        status_code = p.wait()
        if status_code != 0:
            display.vvv(u"No connection to reset: %s" % to_text(stderr))
        else:
            run_reset = True
        if run_reset:
            cmd = self._build_command(self.get_option('ssh_executable'), 'ssh', '-O', 'stop', self.host)
            display.vvv(u'sending connection stop: %s' % to_text(cmd))
            p = subprocess.Popen(cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
            stdout, stderr = p.communicate()
            status_code = p.wait()
            if status_code != 0:
                display.warning(u"Failed to reset connection:%s" % to_text(stderr))
        self.close()
    def close(self):
        self._connected = False