I think it depends on which level you are interested in, i.e., genomic or transcriptome. I would use UCSC known genes for the former and GENCODE for the latter. I prefer to use UCSC known genes. I recently was doing structural variant analysis and I found that the breakpoint I obtained in the STAT6 gene was outside the coordinates of the RefSeq genes but within the STAT6 UCSC known gene. This got me confused at first because I thought that the breakpoint was probably in a region where two contigs overlap in the genome assembly, with no annotation in that region.