### 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
self._flags['become_success'] = True
                suppress_output = True
            elif sudoable and self.become.check_incorrect_password(b_line):
                display.debug(u"become_error: (source=%s, state=%s): '%s'" % (source, state, display_line))
                self._flags['become_error'] = True
            elif sudoable and self.become.check_missing_password(b_line):
                display.debug(u"become_nopasswd_error: (source=%s, state=%s): '%s'" % (source, state, display_line))
                self._flags['become_nopasswd_error'] = True
            if not suppress_output:
                output.append(b_line)
        
        
        
        
        remainder = b''
        if output and not output[-1].endswith(b'\n'):
            remainder = output[-1]
            output = output[:-1]
        return b''.join(output), remainder
    def _bare_run(self, cmd, in_data, sudoable=True, checkrc=True):
        '''
        Starts the command and communicates with it until it ends.
        '''
        
        display_cmd = u' '.join(shlex_quote(to_text(c)) for c in cmd)
        display.vvv(u'SSH: EXEC {0}'.format(display_cmd), host=self.host)