I think that by using readOGR to import a shapefile renders worthless to put proj4string to the script since if any coords are available in the shapefile, it will be transported through the readOGR.
Therefore, proj4string is expedient only if we use another import function for example readShapeSpatial
(for polygons, lines or points) or by using readOGR, but in the case that the shapefile does not contain the coordinates/projection:
When checking if the shapefile has projection information and if it has not, should I add proj4string although I have put readOGR?