At that point the use case was to allow more efficient storage for small blocks, that would require too much overhead if stored on some wide dRAID normal vdev. And from that perspective it does not really matter if it is the first, the only block or any other block.
But there is indeed possible (and I agree quite likely) another use case of storing small files on special vdev to reduce HDD head seeks, while large files can be accessed there more efficiently thanks to read-ahead and write-back. For this use case the code is indeed not very optimized now. Though the spa_preferred_class() function making the decision does have zio_t argument, so from io_bookmark it in theory could be able to distinguish first blocks of a file from any others. But it can’t say whether it is the only block of a file.