That's correct for both. The reasoning for each is:
Like button - The Like button will still display the number of Like's for the page even if the user isn't logged in. However, to actually 'Like' the page the user must be logged into Facebook.com (not necessarily your site). That's a requirement to prevent abuse so that Facebook can ensure each click is unique. Those clicks then also have the benefit of promoting your site to that user's friends, which is great for social promotion.
Facepile - Yes, this will display nothing if the user isn't logged in. Even when logged in to Facebook, it will only show the pictures of the user's friends that have connected to the site, or performed a certain action. It will not show pictures of 'everyone' who has connected to the site. There is no widget that does that. For more information, see the
Facebook Facepile documentation
.
Hope that explains, even if it's not what you were looking for. If there were some features you were hoping for, let us know what they are, and we'll let you know if its possible and what the best options would be.
Thanks,
Alex