since Blender 2.22 (or 2.20, not sure), material (up to 16) are kept in the final mesh. The 16 material is composed of a list of all the materials present in the solution. If you have over than 16, the list is taken in alphabetical order. Also, a material that appears in two different object is treated as different, so be sure to join them to make sure you don’t loose some materials in the solution. I don’t know if vertex groups are saved, but it would be a good idea to check, because that could stop the separating pain too.