The i386 designation defines the "architecure" of the host machine destination. If the machine is an Intel type CPU or one of the clones, like Cyrus/AMD, then it is i386 architecture. This includes the Intel series 80386, 80486, all Pentium class CPU's, as well as AMD K6, K6/2, Athlon, etc. This is in comparison to a Alpha, Sparc, Sparc64, etc. If you look in the kernel sources directory under "arch" there are over a dozen different architectures listed there for the kernel. Each architecture has there own unique operations and would require different executables. Each architecture requires its own compilers, object libraries and linkers to build an executable program. The result will be a program for that architecture. The designation of "i386" is just to used to indicate it is built for the Intel architecture.
In reference to Slackware, the default kernel builds are built for a single 80386 processor or above. It allows for the most compatibility. If you desire an optimized kernel for a higher class CPU or mutliple CPU's, then you must build and install a kernel built for the specific machine.
The Linux kernel is really the only place where the specific CPU can even be configured. The remaining parts of the Linux distribution are built upon 32 bit coded libraries ported to the i386 architecture.
I have heard of the designation "i586" before. To my knowledge it is not a reference to an architecture. I think it simply means, in reference to a Linux distribution, the default installation kernel requires a Pentium class processor to boot and install. There are probably some distros that have that requirement for the stock kernel builds.