String values are passed By Value, List and Map are passed By Reference (just like objects)
You should change the signature of the subroutine and return the Gamma string. Like this:
B4X:
Public Sub subRoutine1 (alfa As List, beta As Map) As String
alfa.Initialize
beta.Initialize
'
alfa.AddAll(Array As String("One", "Two", "Three", "Four", "Five"))
'
beta.Put("ciao", "Hello")
beta.Put("mondo", "World")
'
Return "why doesn't the value return?"
End Sub
And then call the subroutine in your maincode this way: