I've run your example (minus the last \), and I'm getting a cache. You'll need to provide some more details for us to look over. Try running a document with just this chunk:
If the cached objects have a large combined size in memory, it may be just taking that long to load them from disk. Here are two chunks to test if a cache is actually being created:
library(survival)
"survival" %in% loadedNamespaces()
The first time you knit the document, before there's a cache, the second chunk will give the result TRUE. Afterwards, if there is a cache, it'll show FALSE. This is because knitr doesn't capture loaded packages in cache.
I am getting the same results as you (NULL cache).
As far as I know there are two incompatible caches when you work with Rmd and especially notebooks. One is a knitr cache which is only used when you knit the whole document. The knitr::opts_current obviously refers to that cache. The second cache is what RStudio itself uses when you run code snippets one by one. If you "preview" a document the results also come from that internal RStudio cache which has nothing to do with knitr package. knitr cannot access that cache.
This has been an constant source of confusion for our users who are surprised that even after they've evaluated all the snippets in a notebook with cache=TRUE running knit takes a long time because knit does not use those results. As far as I know there is no plans to reconcile the caches.
The short answer to your question is running knitr::opts_current$get in a snippet does not create knitr cache regardless of the value of the cache option.