Magento 2.1.8 with PHP 7.0
Frontend :

Admin

More often than I'm comfortable admitting, I feel like the Magento team develops their code under the assumption that just a couple people with very few wants will ever browse a site at any given time. This is the feeling you get when reading through so many of the tickets here. So many of the problems just scream complete lack of planning for scale.
Magento is designed with performance and scaling in mind indeed.
See https://github.com/magento/magento2/issues/8477#issuecomment-278637744 for more details behind such decision. You can change default 10000 value to whatever limit is better suitable for your particular store.
Please get back to here with feedback if it worked or not.
Changing the value in the CatalogSearch/etc/search_request.xml file does work, the site now displays the same product count as the admin panel.
Magento is designed with performance and scaling in mind indeed.
@orlangur Like https://github.com/magento/magento2/issues/9498 or the countless indexing issues listed here that rear their heads when you have hundreds of thousands of products? Who designs a system to fail catastrophically and without any error messages, or ways to resume progress, when dealing with several-hours-long processes? People who don't write with scale in mind. The test data you guys use should have hundreds of thousands of products. Then, and only then, will you understand the frustration that many of the big store developers experience.
@danemacmillan sorry, I don't have to get familiar in deep with the issue you mentioned, Magento is tested with hundreds of thousands of products in fact: https://github.com/magento/magento2/blob/2.2-develop/setup/performance-toolkit/profiles/ce/extra_large.xml#L14
There always could be some special circumstances, like 10000 variations assigned to the same configurable product or something, each such situation should be reported separately in order to be investigated.