This isn't anything to worry about. The memory allocation isn't real. There's no 300+MB void of memory (real or swap) on your comp that is causing any kind of problems.
Based on what I'm seeing from the output of top on my Mac, the widgets all seem to be using roughly the same amount of virtual memory. One 'DashboardClient' process is running per widget. It is requesting 300MB of memory when it starts, but doesn't actually use that entire 300MB. It turns out it only uses between 5-20MB (on my system anyway) per widget. I get that 5-20MB number from the RPRVT (Resident PRiVaTe memory) field in top, or the "real memory" field in Activity Monitor.
Mac OS X does "sparse" memory allocation (similar to sparse files) where a process can request a large amount of memory. The OS will respond to the process that this is done. The OS has only done this "virtually"... that is the OS has set up all the pointers for this memory, but it hasn't actually allocated this memory, either in RAM or in swap. The OS will only allocate the real memory blocks when the process tries to write to the memory locations, and even then it will only allocate 1 page (4096 bytes) at a time.
In a nutshell if I write a program that requests 20GB of memory but only uses 1MB of memory, then that 1MB is all that will ever be really allocated, even though the program is told by the OS that all 20GB was allocated.
Use vm_stat (from the terminal) to see some more realistic virtual memory numbers. The important field is 'pages allocated'.
wish I could give you a big gold star for this explanation !!! thank you