I think the architecture overview in Scrapy master docs doesn't explain correctly the difference between URLs and Requests. It says that spider returns URLs, and Engine converts them to Requests, but this is confusing - spider returns Requests. There are also "URLs" on the chart, but Scrapy passes Request instances almost everywhere, not URLs.
Old explanation (before https://github.com/scrapy/scrapy/pull/2165) didn't have this issue; as it is a regression I added '1.2' milestone.
Here's the dataflow diagram corrected (REQUESTS instead of URLS)

Scrapy_Dataflow_Diagram.svg.zip
Thank you @uberux !
Most helpful comment
Here's the dataflow diagram corrected (REQUESTS instead of URLS)
PNG version
SVG version
Scrapy_Dataflow_Diagram.svg.zip
AI version
scrapy_dataflow.ai.zip