I am studying how the Bitcoin addresses generation works.
As far as I learned, a Bitcoin address appears in the blockchain only after it has been involved in its first transaction. If an address has never been used in any transactions, it will not have a presence in the blockchain.
For this reason, Initially, I believed that without knowledge of the private key, there would be no way to verify if a given address is a correct hash generated from real key, or simply a random/made-up combination of characters of the same length (like some of those "vanity-addresses").
However, today I discovered that when I enter a genuinely generated BTC address that has never been used before (for sure) into the search field on blockchain.com, the latest displays a message indicating that the address is found but has no transactions.
To generate addresses, I used bitaddress.org and this python lib, I tried multiple times, using both, but the results always generally look like ones above.
On the other hand, when I change a single character in such an address or enter random digits and letters that visually resemble a BTC address (including length) but were not generated using the mentioned lib/service, blockchain.com states that "Nothing found."
How do the service distinguishes between real and made-up addresses, in this case?