How to delete undeletable songs from an iOS device
Go into Settings > Music > and enable "Show All Music".
The undeletable song have the cloud symbol next to them.
Redownload the songs.
Once finished downloading, go back to settings>music> and disable "show all music" then the swipe-to-delete will work again for the rogue songs. If you don't disable "show all music" it will delete then pop up again.


My theory is that initially when playing songs from the cloud, it caches the song somehow, and when you switch off "Show all music", the cached song remains, but iTunes doesn't see it as an actual song and won't allow deletion.