If you are using this API for live-site retrieval of the current page, then yes, it is cached (for a hardcoded value of 10 minutes).
However, if you are using this API during "Edit" / "Preview" mode requests (when using the Page Builder in the Content Management application), then no, it will retrieve the "latest" page every time.
The example in the Dancing Goat code base is confusing because the data is cached an extra time. I think this is to show how to use the IPageRetriever
caching or if you want to set additional cache dependencies / cache times that Xperience might not know about for the given Page.
You do not need to cache the result of IPageDataContextRetriever
under normal use-cases.