pivot_wider() is intended to provide the same interface tidyr provides and offers much more functionalities than sdf_pivot() does.
More generally, sdf_* family of functions are simply R wrappers for Spark DataSet API functions.
tbl_* family of functions are required S3 methods for implementing the dplyr backend for Spark dataframes. They should not really be considered as part of the user-facing API of sparkylr.
One key difference between *_cache and *_persist is the latter has a parameter for the level of persistence (none, memory, disk, etc).