Ok sure, more specifically you are saying nested Groups were never intended to be supported. That statement in itself is very concerning as it sounds like you're starting to limit who uses Corona and how.
Here's a quick test of nested groups. It creates a simple vehicle with wheels rotating which are a part of a vehicle group which is moving across the screen, landscape, h_1536, w_2048. Of course there are plenty of ways to make this car and move it, that's not the point of this comparison but rather to show how nested groups are not working. Firstly G1:
-----------------------------------------------------------------------------------------
--
-- main.lua
--
-----------------------------------------------------------------------------------------
local gp_carBody = display.newGroup()
local gp_wheel1 = display.newGroup()
local gp_wheel2 = display.newGroup()
local gp_car = display.newGroup()
-- body positioning
local body = display.newRect( 1098, 808, 748, 228 )
body:setFillColor( 255, 255, 255 )
-- top positioning
local top = display.newRect( 1315, 628, 276, 260 )
top:setFillColor( 255, 255, 255 )
-- tyre1 positioning
local tyre1 = display.newCircle( 1265, 1041, 75 )
tyre1:setFillColor( 3, 145, 222 )
-- cap1 positioning
local cap1 = display.newCircle( 1265, 1041, 53 )
cap1:setFillColor( 255, 255, 255 )
-- tyre2 positioning
local tyre2 = display.newCircle( 1689, 1041, 75 )
tyre2:setFillColor( 3, 145, 222 )
-- cap2 positioning
local cap2 = display.newCircle( 1689, 1041, 53 )
cap2:setFillColor( 255, 255, 255 )
-- Organise Groups
gp_carBody:insert(body)
gp_carBody:insert(top)
gp_wheel1:insert(tyre1)
gp_wheel1:insert(cap1)
gp_wheel1:setReferencePoint( display.CenterReferencePoint )
gp_wheel1.xScale = 0.5
gp_wheel2:insert(tyre2)
gp_wheel2:insert(cap2)
gp_wheel2:setReferencePoint( display.CenterReferencePoint )
gp_wheel2.yScale = 0.5
gp_car:insert(gp_carBody)
gp_car:insert(gp_wheel1)
gp_car:insert(gp_wheel2)
-- animation
transition.to (gp_car, { time = 4000, x = -1000 } )
transition.to (gp_wheel1, { time = 500, rotation = -360, iterations=8} )
transition.to (gp_wheel2, { time = 500, rotation = -360, iterations=8} )
The body of the vehicle stays still in the Y axis as the group moves across the X.
Now here is the G2 version. Firstly, it requires 9 more lines of code to achieve the same thing. We have to set anchor is true, then work out where the object would be on the screen and add that. Working out where the group is takes calculations of the height, width, average x and y of the group's contents and do math depending on where you want the anchor. Still more lines would be required if we suddenly needed to change the anchor mid way through to stop the groups contents from snapping to a new position. Anyway, here's G2 version:
-----------------------------------------------------------------------------------------
--
-- main.lua
--
-----------------------------------------------------------------------------------------
local gp_carBody = display.newGroup()
local gp_wheel1 = display.newGroup()
local gp_wheel2 = display.newGroup()
local gp_car = display.newGroup()
gp_wheel1.anchorChildren = true
gp_wheel2.anchorChildren = true
gp_car.anchorChildren = true
-- body positioning
local body = display.newRect( 1472, 922, 748, 228 )
body:setFillColor( 255/255, 255/255, 255/255 )
-- top positioning
local top = display.newRect( 1454, 758, 276, 260 )
top:setFillColor( 255/255, 255/255, 255/255 )
-- tyre1 positioning
local tyre1 = display.newCircle( 1265, 1041, 75 )
tyre1:setFillColor( 3/255, 145/255, 222/255 )
-- cap1 positioning
local cap1 = display.newCircle( 1265, 1041, 53 )
cap1:setFillColor( 255/255, 255/255, 255/255 )
-- tyre2 positioning
local tyre2 = display.newCircle( 1689, 1041, 75 )
tyre2:setFillColor( 3/255, 145/255, 222/255 )
-- cap2 positioning
local cap2 = display.newCircle( 1689, 1041, 53 )
cap2:setFillColor( 255/255, 255/255, 255/255 )
-- Organise Groups
gp_carBody:insert(body)
gp_carBody:insert(top)
gp_wheel1:insert(tyre1)
gp_wheel1:insert(cap1)
gp_wheel1.anchorX, gp_wheel1.anchorY = 0.5, 0.5
gp_wheel1.x, gp_wheel1.y = 1265, 1041
gp_wheel1.xScale = 0.5
gp_wheel2:insert(tyre2)
gp_wheel2:insert(cap2)
gp_wheel2.anchorX, gp_wheel2.anchorY = 0.5, 0.5
gp_wheel2.x, gp_wheel2.y = 1689, 1041
gp_wheel2.xScale = 0.5
gp_car:insert(gp_carBody)
gp_car:insert(gp_wheel1)
gp_car:insert(gp_wheel2)
gp_car.anchorX, gp_car.anchorY = 0.5, 0.5
gp_car.x, gp_car.y = 1472, 922
-- animation
transition.to (gp_car, { time = 4000, x = -200 } )
transition.to (gp_wheel1, { time = 500, rotation = -360, iterations=8} )
transition.to (gp_wheel2, { time = 500, rotation = -360, iterations=8} )
Now if you run this, the car is suddenly jiggling up and down in the y axis. The reason? Because the wheels are rotating, their height is changing which effects the overall height of the group gp_car which shifts up and down to remain anchored to the BottomCenter.
Now, if we were to anchor the gp_carBody which is nested in the gp_car then it's crazy clown fun time. The car comes completely to bits.. Try it by adding:
gp_carBody.anchorChildren = true
gp_carBody.anchorX, gp_carBody.anchorY = 0.5, 1
gp_carBody.x, gp_carBody.y = 1472, 1000
transition.to (gp_carBody, { time = 250, y = -50, iterations=16 } )
So you're not wrong when you said that nested groups are no longer possible in Corona, or at least highly restricted in their application. This is a big shame because as an animator using Corona in G1 has been a joy and has led on to some great results. Things like walk cycles of characters rotating limbs and moving up and down while also moving across. Also squash and stretch where the anchor needs to change its position.
Having to add all this extra code to achieve only a small part of what you could do with reference points doesn't seem like an evolution of the software especially since it actually no longer works no matter how much code you have to write..