I do this

#+name: org-calc2
#+begin_src emacs-lisp :session :tangle yes :cache yes
(calc-eval "deg(42@ 26' 36.42\")")
#+end_src

#+name:org-calc3
#+begin_src emacs-lisp
(expt (string-to-number (org-sbe "org-calc2")) 2)
#+end_src

#+name:org-calc4
#+begin_src emacs-lisp
(+ 1 (string-to-number (org-sbe "org-calc3")))
#+end_src

#+RESULTS: org-calc4
: 1802.4464479024998

and then evaluate org-calc4, which works fine. One question: Is there any way to not need the (string-to-number ...) wrapper? Another question: These names org-calc2, org-calc3, org-calc4 are not members of Emacs' "features", so where are they kept and how are they made active? Could org-mode make them globally available and not just in that buffer? I would guess we're actually doing "Library of Babel" ingestion with org-sbe?

LB