I am running Ubuntu 14.04 on my laptop, and whenever I run
cat /proc/cpuinfo | grep "MHz"
I get varying speeds. I thought that clockspeed is a fixed property, which can be under clocked or overclocked. But is this behaviour normal?

I am running Ubuntu 14.04 on my laptop, and whenever I run
cat /proc/cpuinfo | grep "MHz"
I get varying speeds. I thought that clockspeed is a fixed property, which can be under clocked or overclocked. But is this behaviour normal?

This is what the CPU governor does - observe the usage and adjust frequency accordingly. CPU frequency scaling is a pretty standard technique for power saving. There are tools to manage frequency scaling, cpupower from linux-tools-common is one such.
To look at current governor settings, you can inspect the folders in /sys/devices/system/cpu/cpu*/cpufreq. For example, the available maximum frequency of my CPUs:
$ tail /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_max_freq
==> /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq <==
3301000
==> /sys/devices/system/cpu/cpu1/cpufreq/cpuinfo_max_freq <==
3301000
==> /sys/devices/system/cpu/cpu2/cpufreq/cpuinfo_max_freq <==
3301000
==> /sys/devices/system/cpu/cpu3/cpufreq/cpuinfo_max_freq <==
3301000
The governor parameters might have a different (lower) maximum value, stored in the corresponding scaling_max_freq files.