मौलिक सीमा केवल यह है कि JVM अपने बाइट कोड में टेल कॉल प्रदान नहीं करता है और, परिणामस्वरूप, JVM पर टेल कॉल प्रदान करने के लिए JVM पर निर्मित भाषा का कोई सीधा रास्ता नहीं है। ऐसे वर्कअराउंड हैं जो एक समान प्रभाव प्राप्त कर सकते हैं (उदाहरण के लिए trampolining) लेकिन वे भयानक प्रदर्शन की गंभीर लागत पर आते हैं और उत्पन्न मध्यवर्ती कोड को बाधित करते हैं जो एक डिबगर को बेकार बनाता है।
इसलिए JVM किसी भी उत्पादन-गुणवत्ता वाली कार्यात्मक प्रोग्रामिंग भाषाओं का समर्थन नहीं कर सकता, जब तक कि सूर्य JVM में टेल कॉल को लागू न कर दे। वे वर्षों से इस पर चर्चा कर रहे हैं, लेकिन मुझे संदेह है कि वे कभी भी टेल कॉल को लागू करेंगे: यह बहुत मुश्किल होगा क्योंकि उन्होंने इस तरह की बुनियादी कार्यक्षमता को लागू करने से पहले अपने वीएम को समय से पहले अनुकूलित किया है, और सूर्य का प्रयास कार्यात्मक भाषाओं के बजाय गतिशील भाषाओं पर दृढ़ता से केंद्रित है।
इसलिए एक बहुत मजबूत तर्क है कि स्काला एक वास्तविक कार्यात्मक प्रोग्रामिंग भाषा नहीं है: इन भाषाओं ने टेल कॉल को एक आवश्यक विशेषता माना है क्योंकि योजना को 30 साल पहले शुरू किया गया था।