Unable to get cached items from Storage.Personal as it always returns null.
Also when using CacheableWebPart the RenderCachedOutput returns false meaning the cache is empty.
When using Storage.Shared everything works fine.
MSDN article: "The problem is that when a Web Part is not yet personalized, you must read and write cached data using shared cache storage, even if the current mode is personal. Web Parts use shared storage, even for personal properties, until a user actually saves a personalized setting."
Still it doesn't explain if CacheableWebPart doesn't work.