i.e. if you want PA1 (in your example) to use UART then you have to select Alternate Function 7. A different pin function e.g. I2C will be a different Alternate Function.
The value you select is loaded into the GPIOx_AFRL / GPIOx_AFRH registers.
See page 272 of RM090 for an explanation of Alternate Function GPIO Multiplexing:
The Data Sheet/Manual covers the pin level stuff as there are multiple packages with different pins and sizing.
The Reference Manual covers a lot of the general die / family level stuff, the registers and peripherals, some of which won't escape from smaller packages.
They've been doing this for more than a decade, don't anticipate this strategy changing.
Probably shouldn't mention the Programming Manual..