With snap always set to 'Vertex' and 'Active', Pivot at '3D Cursor'. All transforms in Edit Mode, with all vertices selected, and a convenient vertex active. Usually you will translate-snap the active vertex into place, put the 3D Cursor there, and then with another vertex roughly opposite the cursor made active, uniformly-scale or rotate all the vertices about the 3D cursor.
All objects created from Extra Objects > Math Function > Regular Solids
- Dodecahedron to Icosahedron: AltP Poke all faces of the Icosahedron, scale all vertices of the dodecahedron, snapping the active vertex to one of the new face centers
- Cube to Dodecahedron: scale the cube and snap the active vertex to one of the corners of the dodecahedron
- Tetrahedron to Cube: the solid can be snapped, by progressively moving the pivot point and setting Custom Orientations, but easier to snap individual vertices of the tetrahedron to the appropriate corners of the cube.
- Octahedron to Cube: poke the faces of the cube, and scale, as we did with the dodecahedron.
What Blender's snap system is missing (compared to some other 3D applications,) is the ability to set a snap orientation. You can constrain the transformation of the snap source, but not the vector from snap source to snap target.
But, given that, sure you can snap during rotations, scales, and translations, constrained ones, if you like.