Не могу понять почему цикл работает не корректно?
Потому что оператор return производит выход из функции 
и возврат значения из неё (естественно это происходит один раз).
Оператор print выполняется в цикле столько раз, сколько у вас элементов в resource_links
В дополнение к уже данному ответу. Откройте для себя генераторы и yield:# def get_links(resource_links):
#     for item_link in resource_links:
#         yield item_link
        
def get_links(resource_links):
    yield from resource_links
        
list(get_links())