Solidify faces as separate objects that touch

I have a mesh objects with faces. I would like to create separate objects for each face but solidify them at the same time while they still touch eachother. For a cube I could do this in the following way:

1. Create cube mesh
2. In edit mode, use Edge split (search 'Edge split')
3. Extrude E, but cancel immediately
4. Scale S (larger or smaller doesn't really matter)
5. Select all faces A and separate P > As loose parts

The result is something like this where each face is now a thick version of itself with bevelled edges that touch (one side removed to highlight the internals, but these are 6 separate objects).

However, due to the way in which scaling works, this does not work well for convex shapes. The scaling scales to the center of the object instead of along the normals.

I also tried extrude along normals, but this loses the shape due to the edge split. Somehow is does not exactly the same as scale and extrudes the exact shape of the face outwards (instead of keeping the edges together).

Which method could I use to achieve the desired effect for freeforms?