But previous salary is for a specific job. New salary is for a totally new and different role.Only if you think of a salary as the fair amount of pay for a job. But that's not how companies (mostly) set salaries: salaries are set at the value which allows them to recruit the candidate and kept at a level where staff don't actively leave because of low pay. Companies base their offers on previous salaries because they believe (correctly) that most people are going to be happy with a salary that is higher than their current salary and unhappy with a salary that is lower.
If a bin man became a doctor you can't give uplift from starting bin man wage as the doctor role is different level of responsibility