In the course of time, the Internet of Things (IoT) has attracted significant research interest. However, IoT devices have limited resources available in terms of battery power, processing capacity, memory, bandwidth, etc. In an attempt to provide connectivity and Internet Protocol version 6 (IPv6) support to IoT devices, the IPv6 routing protocol for Low-Power and Lossy Networks (RPL) was officially launched as the standard routing protocol for IoT in 2012. Despite being reputed and used in diverse applications, several recent studies have revealed RPL's drawbacks and limitations. The main objective of this work is to help the IoT research community understand all aspects of RPL. The paper also provides a detailed description of the operation of the RPL protocol. What is more, this work includes novel and thorough examples, thereby gaining practical knowledge of the pros and cons of this protocol. In addition, this paper reviews and summarizes relevant RPL-based protocols and conducts comprehensive comparisons among them from the perspectives of reliability, robustness, energy efficiency, and flexibility. Technically speaking, after studying and reviewing the majority of the proposed RPL solutions, we are ultimately capable, in this work, of highlighting all the challenges faced by IoT researchers while enhancing RPL and providing what is expected to be dealt with professionally. The present work also gives more details about RPL simulation platforms and RPL applications. Not only to this extent, but rather the historical bibliometric analysis of RPL, which shows the trends in the area of research to be focused on, has been professionally analyzed based on RPL challenges over the years 2010 and 2021. To this end, the conclusions and recommendations of this study are presented along with the effective directions for future RPL, and their applicability. As a result, the authors believe that this work will be a valuable reference for all RPL researchers and designers.