Why can't sodium and potassium ions use each other's channels?
You must realise that we aren't talking about simple diffusion here. The positive ions are moved through the ion channels via attractions set up with the protein molecules lining the walls.
That means that the ions must be the right size and be able to form the right bonds with sides of the channels.
It isn't just the size of the ions that matters. Potassium ions are bigger than sodium ions, and so you would think that sodium ions would be able to pass through the potassium channel as well as the potassium does.
The problem is that the sodium ions are too small for proper effective attractions to be made with both sides of the ion channel, and so they don't get moved through the channel.
The hydration of the ions also matters. The positive ions in solution will have water molecules attracted to them.
It takes energy to remove these water molecules.
The attractions between the larger potassium ions and the water molecules are weaker than they are in the sodium case, and so it is easier to remove them.
These water molecules are stripped off the potassium ions before they pass through their channel. The energy to do this is recovered by making new attractions between negatively charged parts of the protein side groups and the positive potassium ions.
Once the potassium ions get inside the cell, they are hydrated again. The energetics of all of this is unfavourable for sodium ions.
The situation is slightly more complex in the sodium ion channel. Sodium ions have to have a water molecule attached in order to interact properly with the groups lining the sides of the channel. Potassium ions with water molecules attached are the wrong size for this to work.