Best bet would be to use it on all platforms, no need to detect. If you must detect version, use rodeviceinfo:
function IsNotLegacyDevice() as boolean
version = CreateObject("roDeviceInfo").GetVersion()
major = Mid(version, 3, 1)
minor = Mid(version, 5, 2)
build = Mid(version, 8, 5)
if major.toint() >= 4 then
return true
else
return false
end if
end function
It has always been true that a channel exits when you close all of its screens and there has been a fair bit of discussion about it here over the years.