Generally the recovery performance of DROP DATABASE is not critical for many users. But unfortunately my colleague's project might need to sometimes drop the database using multiple tablespaces, for some reasons. So, if the fix is not so complicated, I think that it's worth applying that.
Agree, in isolation need for this improvement is not felt, but yes any improvements for single serialized replay process is definitely helpful.
The straight approach to avoid such unnecessary scans is to change DROP DATABASE so that it generates only one XLOG_DBASE_DROP record, and register the information of all the tablespace into it. Then, WAL replay of XLOG_DBASE_DROP record scans shared_buffers once and deletes all tablespaces. POC patch is attached.
Also, irrespective of performance improvement looks better to just have single xlog record for the same.