تعليمة إخراج ناتج
عبارات عودة متعددة

اللغات التي تحتوي على بيان عودة صريح تخلق إمكانية عبارات إرجاع متعددة في نفس الوظيفة. سواء كان هذا أمرًا جيدًا أم لا، فهو أمر مثير للجدل.
يتأكد أنصار البرمجة المهيكلة الأقوياء من أن كل وظيفة لها مدخل واحد ومخرج واحد (SESE). وبالتالي، فقد قيل  أنه ينبغي على المرء تجنب استخدام بيان الإرجاع الصريح إلا في نهاية النص من روتين فرعي، مع الأخذ في الاعتبار أنه عند استخدامه «للعودة مبكرًا»، فقد يعاني من نفس النوع من المشاكل التي تنشأ عن بيان GOTO. على العكس من ذلك، يمكن القول إن استخدام تعليمة الإرجاع مفيد عندما يكون البديل هو رمز أكثر تعقيدًا، مثل التداخل الأعمق، مما يضر بالقراءة.
في كتابه المدرسي لعام 2004، كتب ديفيد وات أن «تدفقات التحكم في الدخول المتعدد والمخارج تكون مرغوبة في كثير من الأحيان». باستخدام مفهوم إطار عمل تينينت (Tennent) الخاص بـ المنظم (Sequencer)، يصف وات بشكل موحد تركيبات تدفق التحكم الموجودة في لغات البرمجة المعاصرة ويحاول شرح سبب تفضيل أنواع معينة من أجهزة التسلسل على الأنواع الأخرى في سياق تدفقات التحكم متعدد المخارج. يكتب وات أن goos غير المقيدة (متسلسلات القفز) سيئة لأن وجهة القفزة لا تشرح نفسها لقارئ البرنامج حتى يجد القارئ ويفحص التسمية أو العنوان الفعلي الذي هو هدف القفزة. في المقابل، يجادل وات بأن القصد المفاهيمي لمسلسل العودة واضح من سياقه الخاص، دون الحاجة إلى فحص وجهته. علاوة على ذلك، يكتب وات أن فئة من أجهزة التسلسل المعروفة باسم «متسلسلات الهروب»، والتي تُعرف باسم «جهاز التسلسل الذي ينهي تنفيذ أمر أو إجراء يتضمن نصًا»، يشمل كلا من الفواصل من الحلقات (بما في ذلك الفواصل متعددة المستويات) وبيانات الإرجاع. يلاحظ وات أيضًا أنه في حين تم تقييد متسلسلات القفز (gotos) إلى حد ما في لغات مثل سي، حيث يجب أن يكون الهدف داخل الكتلة المحلية أو كتلة خارجية شاملة، فإن هذا التقييد وحده لا يكفي لجعل القصد من جوتوز في سي سيلف - الوصف وبالتالي لا يزال بإمكانهم إنتاج «كود السباغيتي». يفحص وات أيضًا كيف تختلف متواليات الاستثناءات عن متواليات الهروب والقفز؛ للحصول على تفاصيل حول هذا راجع المقالة حول البرمجة المهيكلة.
ووفقا للدراسات التجريبية التي ذكرها اريك روبرتس S.، كان المبرمجين الطالب صعوبة وضع حلول صحيحة لعدة مشاكل بسيطة في لغة مثل باسكال، الذي لا يسمح نقاط الخروج متعددة. بالنسبة لمشكلة كتابة دالة للبحث الخطي عن عنصر في مصفوفة، وجدت دراسة أجراها هنري شابيرو عام 1980 (استشهد بها روبرتس) أنه باستخدام هياكل التحكم التي يوفرها باسكال فقط، تم إعطاء الحل الصحيح بنسبة 20٪ فقط من الأشخاص. بينما لم يكتب أي موضوع رمزًا غير صحيح لهذه المشكلة إذا سمح لكتابة إرجاع من منتصف الحلقة.
يجادل آخرون، بما في ذلك كينت بيك ومارتن فاولر، بأن جملة أو أكثر من جمل الحماية - عبارات العودة «للخروج المبكر» الشرطي بالقرب من بداية الوظيفة - غالبًا ما تجعل قراءة الدالة أسهل من القراءة البديلة.
المشكلة الأكثر شيوعًا في الإنهاء المبكر هي عدم تنفيذ عمليات التنظيف أو العبارات النهائية - على سبيل المثال، الذاكرة المخصصة ليست غير مخصصة، أو الملفات المفتوحة ليست مغلقة، مما يتسبب في حدوث تسريبات. يجب أن يتم ذلك في كل موقع إرجاع، حيث يكون هشًا ويمكن أن ينتج عنه أخطاء بسهولة. على سبيل المثال، في التطوير اللاحق، يمكن للمطور أن يتجاهل بيان الإرجاع، وقد لا يتم تنفيذ الإجراء الذي يجب تنفيذه في نهاية روتين فرعي (على سبيل المثال، بيان التتبع) في جميع الحالات. اللغات التي لا تحتوي على تعليمة عودة، مثل لغة باسكال القياسية، لا تعاني من هذه المشكلة. تستخدم بعض اللغات، مثل C ++ وبايثون، مفاهيم تسمح بتنفيذ الإجراءات تلقائيًا عند العودة (أو رمي الاستثناءات) مما يخفف من بعض هذه المشكلات - وغالبًا ما تُعرف هذه باسم «المحاولة / النهائية» أو ما شابه ذلك. يمكن تنفيذ وظائف مثل هذه الجمل «النهائية» من خلال الانتقال إلى نقطة العودة الفردية للروتين الفرعي. الحل البديل هو استخدام فك الرصة العادي (إلغاء التخصيص المتغير) عند خروج الوظيفة لإلغاء تخصيص الموارد، مثل عبر المدمرات على المتغيرات المحلية، أو آليات مماثلة مثل بيان بايثون «مع».
قامت بعض التطبيقات المبكرة للغات مثل باسكال و ++C الأصلي بتقييد الأنواع التي يمكن إرجاعها بواسطة دالة (على سبيل المثال، عدم دعم أنواع التسجيلات أو الهياكل) لتبسيط مترجميها.
في لغة البرمجة جافا -واللغات المماثلة على غرار ذلك، مثل جافا سكريبت -من هو ممكن لتنفيذ التعليمات البرمجية حتى بعد بيان المقابل، لأن منع أخيرا من هيكل محاولة اللحاق يتم تنفيذ دائما. لذلك إذا تم وضع تعليمة الإرجاع في مكان ما داخل كتل تراي أو كاتش، فسيتم تنفيذ الكود في النهاية (إذا تمت إضافته). حتى أنه من الممكن تغيير قيمة الإرجاع لنوع غير بدائي (خاصية لكائن تم إرجاعه بالفعل) لأن الخروج يحدث بعد ذلك أيضًا.