How blog page in WordPress works : blog page retrieve first post ID

The $post object contains data for the main query of the current page. So in your case the main query on your front-page.php contains the data from the page you assign to be your front-page. Your blog page however is an archive and can contain multiple post data. And in both cases you use the loop to access this data.

Maybe this page will help explain some more:

https://developer.wordpress.org/themes/basics/the-loop/

Edit:

Okay so I think what you need is get_queried_object() this will return the Page ID when on the front-page or blog. The $post object contains data for the first post in the Loop, you should think of the Blog page as an Archive instead of a Page.