Why scanpy computes HVGs based on the data after log1p?

I find that Seurat computes HVGs based on the raw count matrix though the step is designed to be implemented after NormalizeData function. The structure of Seurat object can store the raw count matrix in a fixed location, to rank the variance. However, I find the Scanpy is very different. If you do not store the raw data in advance, the element ‘X’ will be replaced after certain process. According to the offical tutorial, thesc.pp.log1p function is implemented earlier than sc.pp.highly_variable_genes function. In my opinion, the input ‘X’ to sc.pp.highly_variable_genes is data with adjusted variance instead of raw data. Is it suitable for ranking the variance like this? Is the mean-variance relationship still real?