Response is marked as cacheable in \Magento\PageCache\Model\Layout\LayoutPlugin::afterGenerateXml
only in case if there are no blocks in the layout of current page marked with cacheable="false"
attribute, like this:
<block class="Magento\Checkout\Block\Registration" name="checkout.registration" template="registration.phtml" cacheable="false"/>
By default all CMS, product and category pages should be cacheable, their layouts were refactored so as not to contain non-cacheable blocks.
Also keep in mind, there is a bug related to usage of cacheable="false"
on product pages described herehere.