This fix in 3.18 has introduced some unwanted behaviour (at least for me).
If a TV only get_iplayer instance is used with 3.18 when a pid based search (or a Once from Web PVR Manager) is included with --pvr it now indexes and creates a Radio cache even though type is set to TV and search is for a TV programme.
Prior to 3.18 it was possible to only have a TV cache if Radio downloads were not required.
PID-based searches always check both tv and radio caches (whatever is present) in order to get basic metadata in case other methods fail. This has been mostly invisible to users because cache updates have been suppressed for such searches. That never made sense to me in the PVR context since PVR functionality should be suitable for unattended execution, thus all redundancy should be deployed. That is particularly true since PID-based searches can now be used for downloading of ongoing series, and cache updates are now fairly quick. However, I've arguably violated the Principal of Least Surprise by changing this. It doesn't help that --type is a somewhat ambiguous option. Its primary function is as a search filter, but it has a secondary function in controlling programme indexing. My colleague wants to revert this change in some way, so I'm going to leave it up to them how to proceed.
For now, if you want to avoid indexing any radio programmes, delete your radio.cache file and use --refresh-exclude-groups-radio=local,regional,national to exclude all radio stations from indexing. You will have a radio.cache file, but it will contain no entries.