As a homeowner you are allowed to pull your own permits, however, by pulling your own permit you have to sign documents with the city which state you, as the homeowner pulling your own permit, will be performing all of the work and not paying any contractor to do the work under your permit. The reason for this rule is to protect the homeowner from unlicensed contractors performing work not in line with current building codes. The only reason a company would suggest the homeowner pull the permit is that either they do not have the proper license and insurance to perform the roof replacement project or they do not have a license at all. If an unlicensed contractor performs the work under your permit and there are issues after the fact then there is no recourse and it will cost the homeowner more money in the long run. It is always best to hire a contractor who has all of the license and insurance required by your county to pull the permits and complete the work so if there are any issues they are liable for correcting those issues.