Let me try to reply to every question:
Is this accurate or could someone help me out here?
Yes, that´s right. In order to create the SDCard by your own you need to
* keep MBR (the partition table for SDcard
* copy uboot to 1K
* copy uImage to 1M
* create one (i.e.) EXT4 partition starting after uboot and kernel (i.e. at 20M)
So then assuming I have the structure correct I should be able to update the uBoot or uImage without affecting the rootfs?
Yes, but, sometimes I get crazy and forget to copy uboot (or uImage) to 1K (or 1M) and I break MBR. So, you CAN affect the rootfs if you were crazy =P
Although, if you copy uboot and uImage to the right position, rootfs will be fine.
Can you have multiple kernels to load from with our uboot system just like a standard PC does with lilo or grub?
I have never configured any SDCard for that, but I believe it´s possible. If you´re looking for a way to update your kernel for development, I believe the best answer here would be "use ftp to load kernel"
I am assuming the Kernel for Android and Linux are the same and that Android is a framework loaded over the top of the Linux Kernel.
They are the same, but they have different configuration. You can use android kernel to load linux rootfs, but you cannot use linux kernel to load android roofs.
So you could easily have a multi boot system that uses the same kernel . If this is the case then you could run either Linux or Android based on what rootfs you decided to load?
I´m not sure. Because Android needs a complete diferent partition table. But, if you could have X partition for Android and 1 for linux in the same SDCard, I think it may be possible
And lastly if uboot and uimage are both hard coded onto the drive do they need to reside in /boot as well?
No. In LTIB folder it´s done for development purpose.
Please, let me know if I missed any question