There are many R packages from where GO annotations can be retrieved, for example, GO.db, biomaRt, and org.Hs.eg.db. Are there any differences between the annotations obtained from these resources? Which one is the best in terms of update frequency and easy to use? 

One case example adapted from: https://support.bioconductor.org/p/38420/

> library(GO.db)

> library(org.Hs.eg.db)

> res <- get("GO:0006913", revmap(org.Hs.egGO))

> res <- do.call('c', mget(res, org.Hs.egSYMBOL))

> sort(unique(res))

 [1] "AAAS"    "ANKRD54" "ANP32A"  "CAMK1"   "CDK5"    "CITED1"  "EIF5A"   "FBXO22"  "MYBBP1A" "NEUROD1" "NPM1"    "NSRP1"   "NUP205" 
[14] "NUP98"   "RGS14"   "RSRC1"   "SET"     "UPF3A"  
> 
> library(biomaRt)

> ensembl <- useMart("ensembl", dataset = "hsapiens_gene_ensembl")

> res <- getBM(c("hgnc_symbol"), filters = "go", values = "GO:0006913", mart = ensembl)

> sort(unique(res[,1]))

 [1] "AAAS"    "ANKRD54" "ANP32A"  "ANP32D"  "ANP32E"  "CAMK1"   "CDK5"    "CITED1"  "EIF5A"   "FBXO22"  "MYBBP1A" "NEUROD1" "NPM1"   
[14] "NSRP1"   "NUP155"  "NUP205"  "NUP35"   "NUP54"   "NUP58"   "NUP98"   "RAN"     "RGS14"   "RSRC1"   "SET"     "UPF3A"  


> sessionInfo()

R version 3.4.1 (2017-06-30)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS Sierra 10.12.6

Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/libRlapack.dylib

locale:
[1] C

attached base packages:
[1] parallel  stats4    stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
 [1] data.table_1.10.4-3  gap_1.1-20           biomaRt_2.32.1       GO.db_3.4.1          org.Hs.eg.db_3.4.1   AnnotationDbi_1.38.2
 [7] IRanges_2.10.5       S4Vectors_0.14.7     Biobase_2.36.2       BiocGenerics_0.22.1  limma_3.32.10       

loaded via a namespace (and not attached):
 [1] Rcpp_0.12.14    bit_1.1-12      rlang_0.1.4     blob_1.1.0      plyr_1.8.4      tools_3.4.1     DBI_0.7         bit64_0.9-7    
 [9] digest_0.6.12   tibble_1.3.4    bitops_1.0-6    RCurl_1.95-4.8  memoise_1.1.0   RSQLite_2.0     compiler_3.4.1  XML_3.98-1.9   
[17] pkgconfig_2.0.1
GO.db and org.Hs.eg.db are copies of the GO annotations. GO.db is updated every 6 months with each release of Bioconductor. org.Hs.eg.db is also updated at the same time and using GO.db. Following the release schedule of Bioconductor as explained in [Annotation Packages][1]: 
> Annotation packages contain lightly or non-curated data from a public source and are updated with each Bioconductor release (every 6 months). 

biomaRt connects to the server where the informations is stored, so it will be the most up to date. Ensembl is updated every 2-3 months according to [Emily][2]:

> BioMart is not updated every day. BioMart is updated with the rest of the Ensembl database, every 2-3 months.

If you want a stable release you can use either GO.db or org.Hs.eg.db, if you want the most up to date data every time you do an analysis you can use biomaRt. 


  [1]: https://bioconductor.org/developers/package-submission/#submission
  [2]: https://bioinformatics.stackexchange.com/questions/8799/discordance-of-gene-ontology-data-between-mouse-genome-informatics-and-ensembl-s/8801?noredirect=1#comment11858_8801