Maybe my reaction was too kneejerk.
In general we can take an r_object, and get a string representation, then evaluate it back into an r object with the use of dput() to go to string, and eval/parse to go back. The exceptions would be objects with pointers etc.
consider
vbox <- flexdashboard::valueBox("100", "Score")
vbox_txt <- capture.output(dput(vbox))
vbox_new <- eval(parse(text=vbox_txt))
identical(vbox, vbox_new)