Let's say I have two connected switches. I specifically configure (force) one of them to use full duplex and the other one I configure to use autonegotiation. Why does this config fail and the autoneg. function just can't adjust to the other port's full duplex?
When you specifically set the speed and duplex on one side of a link, that side will not negotiate, so there is no negotiation which takes place. The other side can detect, not negotiate, the link speed and adjust to it, but because there is no negotiation, it sets the default duplex, based on the speed. The default duplex for 10BASE-T and 100BASE-TX is Half Duplex. The default duplex for 1000BASE-T is Full Duplex, and 10GBASE-T only has Full Duplex.
Cisco has a document with a table which shows what happens when different speed/duplex setting are configured on each end of a link: Troubleshooting Cisco Catalyst Switches to NIC Compatibility Issues
Why Is It That the Speed and Duplex Cannot Be Hardcoded on Only One Link Partner?
As indicated in Table 1, a manual setup of the speed and duplex for full-duplex on one link partner results in a duplex mismatch. This happens when you disable autonegotiation on one link partner while the other link partner defaults to a half-duplex configuration. A duplex mismatch results in slow performance, intermittent connectivity, data link errors, and other issues. If the intent is not to use autonegotiation, both link partners must be manually configured for speed and duplex for full-duplex settings.