### Summary

When the _src_ and _dst_ has some inner folders in common, the inner folder has some nested folders in common and some are different, the copy command does not copy the content of the nested inner folder. The problem only happens in _remote_src_ mode

### Issue Type

Bug Report

### Component Name

ansible.builtin.copy

### Ansible Version

```console
ansible 2.10.6
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/home/tngo/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/tngo/.pyenv/versions/3.6.8/lib/python3.6/site-packages/ansible
  executable location = /home/tngo/.pyenv/versions/3.6.8/bin/ansible
  python version = 3.6.8 (default, Dec  6 2019, 10:08:19) [GCC 7.4.0]
```


### Configuration

```console
Tested with `-c local`
```


### OS / Environment

N/A

### Steps to Reproduce

<!--- Paste example playbooks or commands between quotes below -->
```yaml (paste below)
# test.yml
- hosts: all
  tasks:
    - copy:
        src: /tmp/src/
        dest: /tmp/dest/
        remote_src: yes
```

```
rm -rf /tmp/src/ /tmp/dest/
mkdir -p /tmp/src/a/b1/c1
ansible-playbook -c local -i localhost, test.yml
tree /tmp/dest/

rm -rf /tmp/src/
mkdir -p /tmp/src/a/b1/c2
mkdir -p /tmp/src/a/b2/c3
ansible-playbook -c local -i localhost, test.yml
tree /tmp/dest/
```


### Expected Results

The folder _/tmp/src/a/b1/c2_ must be copied to _/tmp/dest/a/b1/c2_

### Actual Results

```console
PLAY [all] ***************************************************************************************

TASK [Gathering Facts] ***************************************************************************
[DEPRECATION WARNING]: Distribution Ubuntu 18.04 on host localhost should use /usr/bin/python3, 
but is using /usr/bin/python for backward compatibility with prior Ansible releases. A future 
Ansible release will default to using the discovered platform python for this host. See 
https://docs.ansible.com/ansible/2.10/reference_appendices/interpreter_discovery.html for more 
information. This feature will be removed in version 2.12. Deprecation warnings can be disabled 
by setting deprecation_warnings=False in ansible.cfg.
ok: [localhost]

TASK [copy] **************************************************************************************
changed: [localhost]

PLAY RECAP ***************************************************************************************
localhost                  : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   



/tmp/dest/
└── a
    └── b1
        └── c1

3 directories, 0 files



PLAY [all] ***************************************************************************************

TASK [Gathering Facts] ***************************************************************************
[DEPRECATION WARNING]: Distribution Ubuntu 18.04 on host localhost should use /usr/bin/python3, 
but is using /usr/bin/python for backward compatibility with prior Ansible releases. A future 
Ansible release will default to using the discovered platform python for this host. See 
https://docs.ansible.com/ansible/2.10/reference_appendices/interpreter_discovery.html for more 
information. This feature will be removed in version 2.12. Deprecation warnings can be disabled 
by setting deprecation_warnings=False in ansible.cfg.
ok: [localhost]

TASK [copy] **************************************************************************************
changed: [localhost]

PLAY RECAP ***************************************************************************************
localhost                  : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   



/tmp/dest/
└── a
    ├── b1
    │   └── c1
    └── b2
        └── c3

5 directories, 0 files
```


### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
description:
    - When used instead of C(src), sets the contents of a file directly to the specified value.
    - Works only when C(dest) is a file. Creates the file if it does not exist.
    - For advanced formatting or if C(content) contains a variable, use the
      M(ansible.builtin.template) module.
    type: str
    version_added: '1.1'
  dest:
    description:
    - Remote absolute path where the file should be copied to.
    - If C(src) is a directory, this must be a directory too.
    - If C(dest) is a non-existent path and if either C(dest) ends with "/" or C(src) is a directory, C(dest) is created.
    - If I(dest) is a relative path, the starting directory is determined by the remote host.
    - If C(src) and C(dest) are files, the parent directory of C(dest) is not created and the task fails if it does not already exist.
    type: path
    required: yes
  backup:
    description:
    - Create a backup file including the timestamp information so you can get the original file back if you somehow clobbered it incorrectly.
    type: bool
    default: no
    version_added: '0.7'
  force:
    description:
    - Influence whether the remote file must always be replaced.
    - If C(yes), the remote file will be replaced when contents are different than the source.
    - If C(no), the file will only be transferred if the destination does not exist.
    type: bool
    default: yes
    version_added: '1.1'