Q:

What does the "size" of a symlink represent in ls output? 

I'll start by example:
$ ls -l dir1
total 4
-rw-r--r-- 4 maythux maythux 1650 2008-01-10 16:33 file
lrwxrwxrwx 1 maythux maythux  7 2008-01-15 15:17 symfile -> file

symfile is a symlink of the file file
Also as i know 1650 would be the size of the file file, but what is the number 7 that is laid under the size column? 
EDIT:
Running du:
$ du -sh symfile
0   symfile

So how could you prove that 7 is the symlink size?! 

UPDATE:
try this
$ touch file
$ du -sh file
0 file
$ ls -l file
-rw-rw-r-- 1 maythux maythux 0 Jun  1 19:42 file

note that size is also here 0. 
Now:
$ ln -s file sym
$ du -sh sym
0 sym
$ ls -l sym
lrwxrwxrwx 1 maythux maythux 4 Jun  1 19:44 sym -> file

So, I suppose it's not only a size 

A:

Symbolic links take the room it takes to store the name and target plus a few bytes for other metadata.  
So it is the size of the symlink. 
Regarding the size from du -sh: du  only looks at how many blocks are allocated, and so may show 0.stat and ls -l are better in showing the size in that regard. 

A:

It is the size of the symlink in bytes. 
Some file systems have a small area inside the directory entry that is used for the beginning of the file, which significantly speeds up processing of symlinks and small reads (think file) at the expense of larger directory entries. 
If the entire symlink contents fit into the directory entry, then no data blocks are allocated, and the du size shows as zero.  If the symlink doesn't fit, space is allocated normally (so you end up with a single block allocation), which may be optimized by the filesystem using tail merging (but there is no API for du to know about this). 
The ext4 filesystem performs this optimization for symlinks only, the criteria are found in the function ext4_inode_is_fast_symlink.