Freeze transformations work on joints but only for rotation and scale values. You cannot freeze the translation because joints always operate relative to their parent nodes. If you've translated the joints and want to freeze their transforms to the actual offset from the parent joint, you can freeze the rotations then run Skeleton > Orient Joint to zero all translations except the actual offset (for default joint hierarchies, the offset value is along the x-axis).
For your second question, you can probably setup a soft body curve to control spline IK on the secondary action parts.