I had to test the theory to satisfy my own curiosity (you can copy and paste this code to test)
The first answer was no, moving 1 connected Kinematic object does not move it's sibling:
// set window properties
SetWindowTitle( "KineticJoints" )
SetWindowSize( 1024, 768, 0 )
// set display properties
SetVirtualResolution( 1024, 768 )
box1 = createSprite(0)
setSpriteSize(box1,100,10)
setSpriteColor(box1,255,0,0,255)
setSpritePosition(box1, 100,100)
box2 = createSprite(0)
setSpriteSize(box2,200,20)
setSpriteColor(box2,0,255,0,255)
setSpritePosition(box2, 400,200)
SetSpritePhysicsOn(box1,3)
SetSpritePhysicsOn(box2,3)
joint = CreateWeldJoint(box1,box2,100,100,0)
do
setSpritePosition(Box1,getSpriteX(Box1), getSpriteY(Box1) + 1)
Print( ScreenFPS() )
Sync()
loop
So then I made 1 kinetic, 1 Dynamic, connected them and moved the kinetic one. Success!
// set window properties
SetWindowTitle( "KineticJoints" )
SetWindowSize( 1024, 768, 0 )
// set display properties
SetVirtualResolution( 1024, 768 )
box1 = createSprite(0)
setSpriteSize(box1,100,10)
setSpriteColor(box1,255,0,0,255)
setSpritePosition(box1, 100,100)
box2 = createSprite(0)
setSpriteSize(box2,200,20)
setSpriteColor(box2,0,255,0,255)
setSpritePosition(box2, 400,200)
SetSpritePhysicsOn(box1,3) // <--- THE KINETIC OBJECT
SetSpritePhysicsOn(box2,2) // <--- THE DYNAMIC OBJECT
joint = CreateWeldJoint(box1,box2,100,100,0)
do
setSpritePosition(Box1,getSpriteX(Box1), getSpriteY(Box1) + 1)
Print( ScreenFPS() )
Sync()
loop
The 2 remaining questions are whether the dynamic one is sturdy and unable to wobble because it is attached to a kinetic object, and whether your logic can handle the management of 1 kinetic object to control all others.
As for the particles question...I think it needs a bit of experimentation. It should be OK
Quidquid latine dictum sit, altum sonatur